【发布时间】:2021-12-06 21:01:11
【问题描述】:
我有一个训练有素的神经网络,用于解决 Matlab 中的分类问题。我想使用经过训练的权重并将其应用到 C 中。我的神经网络输出给了我一个 7 的向量 (output2[i])。
如何在 Matlab 中使用相同的 vec2ind 函数,该函数采用向量矩阵,每个向量包含一个 1,并返回这些向量的索引,并在找到 1 时立即停止?
我想用 C 语言实现它。
我附上了部分代码
谢谢
double sum = 0;
/// matrix multiplication
for (int i = 0; i < 29; i++)
{
for (int k = 0; k < 2; k++)
{
sum += inputs[k] * weights[i][k];
}
/// apply activation function
output[i] = tanh_func(sum + biases[i]);
sum = 0;
}
/// output layer
for (int i = 0; i < 7; i++)
{
for (int k = 0; k < 29; k++)
{
sum += output[k] * weights2[i][k];
}
/// apply activation function
output2[i] = sigmoid(sum + biases2[i]);
sum = 0;
}
【问题讨论】:
-
如何循环遍历数组,一旦找到 1 就停止,并记住循环索引是什么时候发生的?
-
是的。我将编辑我的问题。我想要一个与 Matlab 中的 vec2ind 类似的功能。我想用 C 来做。我试着做,但我没有得到与 Matlab 中的 vec2ind 函数相同的结果。
标签: c matlab vector neural-network