如何在咖啡中Forward_gpu期间打印变量

How to print variables during Forward_gpu in caffe

本文关键字:gpu 打印 变量 Forward 咖啡      更新时间:2023-10-16

我试图在函数Forward_gpu打印底部形状和底部数据。但它会导致段故障。有人可以告诉我正确的方法以及我遇到段错误的原因吗?

我做了:

void Forward_gpu(const vector<Blob<Dtype> *> &bottom, const vector<Blob<Dtype> *> &top)
{
...
puts("bottom shape: ");
std::cout << bottom[2*i]->gpu_shape()[0] << std::endl;
...
}

我得到了什么:

bottom shape:
*** Aborted at 1500362213 (unix time) try "date -d @1500362213" if you are using GNU date ***
PC: @     0x7fe4be27cbfd caffe::DeformableConvolutionLayer<>::Forward_gpu()
*** SIGSEGV (@0x1020d602c00) received by PID 17153 (TID 0x7fe4bea969c0) from PID 224406528; stack trace: ***
@     0x7fe4bc615cb0 (unknown)
@     0x7fe4be27cbfd caffe::DeformableConvolutionLayer<>::Forward_gpu()
@     0x7fe4be204471 caffe::Net<>::ForwardFromTo()
@     0x7fe4be2047e7 caffe::Net<>::ForwardPrefilled()
@     0x7fe4be224455 caffe::Solver<>::Step()
@     0x7fe4be224d59 caffe::Solver<>::Solve()
@           0x4084be train()
@           0x405cac main
@     0x7fe4bc600f45 (unknown)
@           0x40647d (unknown)
@                0x0 (unknown)
Segmentation fault (core dumped)

你必须像这样访问它们

bottom[2*i]->shape(0)

并确保 2*i 在可用底部的范围内,首先尝试使用

bottom[0]->shape(0)

确保至少你可以让它打印出来