神经网络无法运行

您好,我们的程序在调试的时候运行到神经网络第一步卷积时无法运行,也没有报错。请问可能是什么原因呢?

  • 你说的无法运行具体是什么意思?程序跑飞还是运算结果出错?
  • 卷积那一步运行超时。而后对于卷积函数进行单步调试,发现在network.c 109行执行后,iF,iHp,iWp的值会被改变为一个很大的负数,导致运行后一步循环时超时,一直在这个循环里面。

  • 这几个变量的值都在layer_shapes.h中预设过了,看函数原型可以知道这几个参数来自于调用时候的最后一个形参。

    调用位置长这样,可以看到这些参数来自layer_shapes.add_0_shape中,

    对于layer_shapes这个结构体的定义及赋值在layer_shapes.h中,

    这些值都是自动生成的,不应该出现很大的负数,你检查一下你本地代码的调用关系,看看是不是调用的这里的值?

    如果是的话,你有没有修改过TsInt这个类型的定义?

  • 我们现在只是将手势识别Demo中的神经网络替换成我们自己的网络(就是只替换了src/renesas/application/Translator文件夹下面的所有文件),其余代码没有任何更改。

    怀疑是不是哪里指针访问越界了呢?
  • network.c 109行执行前赋值是正确自动生成的,那行执行后就变成了很大的负值。(上个回复您的JerrySkywalker和我是一组的)
  • 对比一下你生成的weights.h和例程中的这个头文件大小,看看是不是你的网络模型太大导致踩内存了?