- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
此代码是关于使用 com.googlecode.javacv.cpp 训练神经网络当我制作 .create 方法时出现错误
static void train (CvMat TrainData, CvMat classes, int nlayers,int numOfClasses)
{
CvANN_MLP C=new CvANN_MLP();
CvMat layerSizes = cvCreateMat(1, 3, CV_32FC1);
layerSizes.put(0, 0, TrainData.cols());//put or rows or ???
layerSizes.put(0, 1, nlayers);
layerSizes.put(0, 2, numOfClasses);
double alpha=1.0;
double beta=1.0;
C.create(layerSizes, CvANN_MLP.SIGMOID_SYM, alpha,beta );//there is an error here
//OpenCV Error: Bad argument (The array of layer neuron counters must be an integer vector) in//CvANN_MLP::create, file ......\src\opencv\modules\ml\src\ann_mlp .cpp,第 230 行
//Prepare trainClasses
//Create a mat with n trained data by m classes
CvMat trainClasses = null;
trainClasses.create(TrainData.rows(), numOfClasses, opencv_core.CV_32FC1);
for( int i = 0; i < trainClasses.rows(); i++ )
{
for( int k = 0; k < trainClasses.cols(); k++ )
{
int [] ClassesNumber =new int[1];
//If class of data i is same than a k class
classes.get(i, k );
if(k == ClassesNumber[0])
{
trainClasses.put(i, k);
}
else{
trainClasses.put(i, k);
}
}
}
CvMat weights = cvCreateMat( 1, TrainData.rows(), opencv_core.CV_32FC1 );
cvSet(weights, CvScalar.ONE);
//Scler 1111111111
//Learn classifier
C.train(TrainData, trainClasses, weights,null,new CvANN_MLP_TrainParams(), 0);
//trained=true;
}
最佳答案
您必须找到确切的问题,但错误是因为您试图将非整数数量的神经元放入层中。神经网络在每一层中使用离散数量的神经元。也许您不小心分配了 0 个神经元或负数的神经元?确保在调用方法或构造函数时以正确的顺序放置参数。
您告诉训练方法您有 0 个类要输出。因此,您试图将 0 个神经元放在一个层中。您需要确定您期望的输出数量,并且它必须大于零。
if(x>0)
C.train(TrainData, trainClasses, weights,null,new CvANN_MLP_TrainParams(), x);
else
//it won't work
此外,为什么要将 6 个参数传递给具有 4 个参数的方法?...您不能展示您的方法 - 或者您真的不知道这段代码在做什么。在这种情况下你不应该使用它。像下面这样使用它:
layerSizes.put(0, 0, #inputs);
layerSizes.put(0, 1, #hidden neurons);
layerSizes.put(0, 2, #outputs);
关于java - OpenCV 错误 : Bad argument (The array of layer neuron counters must be an integer vector),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276548/
我正在学习使用 OpenCV 进行模式识别并想实现一个分类器。 据我了解,通常的方法是对所有输入值实现神经元网络评估并输出决策。现在,我担心学习 NN 会超出我的智力,我正在寻找一种更简单的方法。 我
我使用 Keras 实现了自动编码器,它采用 112*112*3 个神经元作为输入,将 100 个神经元作为压缩/编码状态。我想从这 100 个神经元中找出能够学习重要特征的神经元。到目前为止,我已经
这个问题与873448有关. 来自 Wikipedia : The Blue Brain Project is an attempt to create a synthetic brain by re
是否可以使用 torch 实现连接同一层神经元的架构? 最佳答案 您所描述的称为递归神经网络。请注意,它需要完全不同类型的结构、输入数据和训练算法才能正常工作。 有 rnn用于处理循环神经网络的 To
我目前正在研究神经网络理论,我发现到处都写到它由以下几层组成: 输入层 隐藏层 输出层 我看到一些图形描述将输入层显示为网络中的真实节点,而其他图形描述则将该层显示为值的向量[x1, x2, ...
我已启动并运行 Visual Studio Community 2019。我正在尝试将 Python 与 NEURON(7.2.536.15) 包一起使用。我的 Python 3.7(64 位)环境中
我有一个大型数据集,我正在尝试使用 SOM 进行聚类分析。数据集巨大(约数十亿条记录),我不确定神经元的数量和 SOM 网格的大小应该从多少开始。任何有关估计神经元数量和网格大小的 Material
我目前正在研究 MNIST 手写数字分类。 我构建了一个具有以下结构的前馈网络: 输入:28x28 = 784 个输入 隐藏层具有 1000 个神经元的单个隐藏层 输出层:10 个神经元 所有神经元都
这是我从 FANN 网站上获取的一个稍微修改过的示例程序。 我创建的方程是 c = pow(a,2) + b。 Train.c #include "fann.h" int main() { c
此代码是关于使用 com.googlecode.javacv.cpp 训练神经网络当我制作 .create 方法时出现错误 static void train (CvMat TrainData, Cv
我是一名优秀的程序员,十分优秀!