未调用 Caffe Layer 函数
Caffe Layer function is not invoked
我在caffe (C++) 中编写了一个自定义层。 运行 此代码(训练使用此层的模型)时,设置层("LayerSetUp"
层的方法)被调用(通过编写一段代码来验证,该代码将在硬盘上创建一个文件并转储一些数据)。但是 Forward_cpu()
和 Backward_cpu()
方法似乎在执行过程中没有被调用。可能是什么原因?
这是 运行 使用此自定义损失层训练的模型的输出。
...
I0715 09:23:57.415463 31256 net.cpp:84] Creating Layer loss
I0715 09:23:57.415472 31256 net.cpp:406] loss <- permute_conv11
I0715 09:23:57.415482 31256 net.cpp:406] loss <- bbox
I0715 09:23:57.415495 31256 net.cpp:380] loss -> loss
I0715 09:23:57.433014 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.437386 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438171 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438897 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438989 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.440030 31256 net.cpp:122] Setting up loss
I0715 09:23:57.440052 31256 net.cpp:129] Top shape: (1)
I0715 09:23:57.440058 31256 net.cpp:132] with loss weight 1
I0715 09:23:57.440099 31256 net.cpp:137] Memory required for data: 3146726596
...
损失层被多次调用(在上面的代码片段中)的原因是,我使用自定义层中的层来调用其他层,([=14= 类型的 softmax],[= 类型的 sigmoid 15=]、reshape_softmax 类型 "Reshape"
、reshape_sigmoid "Reshape" 和另一个 "Reshape"
层。所有这 5 个层都作用于输入 blob 的不同部分以这个自定义图层)
Forward_cpu() 方法似乎在训练模型时根本没有被调用。可能是什么问题,我该如何解决?
很可能在这种情况下调用了 Forward_gpu()
方法。要克服此错误,请确保您没有实现 Forward_gpu
和 Backward_gpu()
的 <your_custom_layer>.cu
文件
我在caffe (C++) 中编写了一个自定义层。 运行 此代码(训练使用此层的模型)时,设置层("LayerSetUp"
层的方法)被调用(通过编写一段代码来验证,该代码将在硬盘上创建一个文件并转储一些数据)。但是 Forward_cpu()
和 Backward_cpu()
方法似乎在执行过程中没有被调用。可能是什么原因?
这是 运行 使用此自定义损失层训练的模型的输出。
...
I0715 09:23:57.415463 31256 net.cpp:84] Creating Layer loss
I0715 09:23:57.415472 31256 net.cpp:406] loss <- permute_conv11
I0715 09:23:57.415482 31256 net.cpp:406] loss <- bbox
I0715 09:23:57.415495 31256 net.cpp:380] loss -> loss
I0715 09:23:57.433014 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.437386 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438171 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438897 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438989 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.440030 31256 net.cpp:122] Setting up loss
I0715 09:23:57.440052 31256 net.cpp:129] Top shape: (1)
I0715 09:23:57.440058 31256 net.cpp:132] with loss weight 1
I0715 09:23:57.440099 31256 net.cpp:137] Memory required for data: 3146726596
...
损失层被多次调用(在上面的代码片段中)的原因是,我使用自定义层中的层来调用其他层,([=14= 类型的 softmax],[= 类型的 sigmoid 15=]、reshape_softmax 类型 "Reshape"
、reshape_sigmoid "Reshape" 和另一个 "Reshape"
层。所有这 5 个层都作用于输入 blob 的不同部分以这个自定义图层)
Forward_cpu() 方法似乎在训练模型时根本没有被调用。可能是什么问题,我该如何解决?
很可能在这种情况下调用了 Forward_gpu()
方法。要克服此错误,请确保您没有实现 Forward_gpu
和 Backward_gpu()
<your_custom_layer>.cu
文件