【发布时间】:2021-09-10 00:45:24
【问题描述】:
我有一个 CNN 测试代码,它从 pytorch 训练数据中读取 CNN 参数并在 CNN 上对其进行测试,代码运行良好,但我尝试使用 tbb parallel_for 来提高性能,因此我将循环从
for (j = 0; j < layerstrings.size(); j++) {
LAYER_INF *p = layerstrings.at(j);
arg1 = p->arg1;
arg2 = p->arg2;
arg3 = p->arg3;
arg4 = p->arg4;
arg5 = p->arg5;
到
parallel_for(size_t(0), layerstrings.size(), [&](size_t j) {
LAYER_INF *p = layerstrings.at(j);
arg1 = p->arg1;
arg2 = p->arg2;
arg3 = p->arg3;
arg4 = p->arg4;
arg5 = p->arg5;
但我不断收到此错误
terminate called after throwing an instance of 'tbb::captured_exception'
what(): 层尺寸不匹配! 第 N 层的输出大小必须等于第 (N+1) 层的输入 第N层:输入:784([[28x28x1],[5x5x6],[1x1x6]]),输出:3456([[24x24x6]]) layerN+1: 全连接 in:160([[160x1x1],[160x10x1],[10x1x1]]), out:10([[10x1x1]]) 3456 != 160
PyTorch cnn 结构看起来像
model = nn.Sequential(
nn.Conv2d(1,6,5),
nn.AvgPool2d(2,2),
nn.ReLU(),
nn.Conv2d(6,10,5),
nn.AvgPool2d(2,2),
nn.ReLU(),
nn.Flatten(),
nn.Linear(160,10),
nn.Sigmoid()
)
有什么想法或建议吗??
【问题讨论】:
标签: c++ debugging pytorch conv-neural-network tbb