Android 如何使用OpenCV'实现激活功能;什么是安卓API?
我是一名OpenCV和Android开发人员,我正在尝试使用OpenCV的JavaAPI实现神经网络。我已经找到了所有我需要的功能,除了ReLU激活功能。所以我决定用Java手动实现这个函数。我的实现逐个遍历Mat的元素,使用Mat.get()访问元素,修改负值,并使用Mat.put()将它们写回Android 如何使用OpenCV'实现激活功能;什么是安卓API?,android,opencv,neural-network,Android,Opencv,Neural Network,我是一名OpenCV和Android开发人员,我正在尝试使用OpenCV的JavaAPI实现神经网络。我已经找到了所有我需要的功能,除了ReLU激活功能。所以我决定用Java手动实现这个函数。我的实现逐个遍历Mat的元素,使用Mat.get()访问元素,修改负值,并使用Mat.put()将它们写回 for(int i=0;i
for(int i=0;i
我已经分析了我的代码,看起来我的ReLU函数(get和put)是整个网络操作的瓶颈。我可以想出一些解决方案,但我不确定哪一个更好,或者是否有比我更好的解决方案
您能告诉我这些解决方案中是否有好的解决方案,或者介绍其他解决方案吗?我稍微修改了上面的代码,并获得了巨大的加速。新的代码段如下所示:
float[] values = new float[output_dim];
input.get(0, 0, values);
for (int i = 0; i < output_dim; i++) {
if (values[i] < 0) {
value[i] = 0;
}
}
input.put(0, 0, values);
float[]值=新的float[output_dim];
获取(0,0,值);
对于(int i=0;i
从Java访问单个元素似乎需要很多时间
float[] values = new float[output_dim];
input.get(0, 0, values);
for (int i = 0; i < output_dim; i++) {
if (values[i] < 0) {
value[i] = 0;
}
}
input.put(0, 0, values);