Check failed: shape[i] >= 0 (-1 vs. 0)错误

在使用Caffe模型进行图像分类时,通常使用的图像大小为224 * 224,如果改变输入图像的大小,有时候会碰到Check failed: shape[i] >= 0 (-1 vs. 0)错误。

  • 背景

使用ResNet-50进行图像分类训练,输入图像的大小为160 *160

  • 错误
I1013 10:53:03.395526 76959 net.cpp:129] Top shape: 16 2048 5 5 (819200)
I1013 10:53:03.395531 76959 net.cpp:137] Memory required for data: 1889075264
I1013 10:53:03.395539 76959 layer_factory.hpp:77] Creating layer res5c_relu
I1013 10:53:03.395553 76959 net.cpp:84] Creating Layer res5c_relu
I1013 10:53:03.395567 76959 net.cpp:406] res5c_relu <- res5c
I1013 10:53:03.395594 76959 net.cpp:367] res5c_relu -> res5c (in-place)
I1013 10:53:03.395841 76959 net.cpp:122] Setting up res5c_relu
I1013 10:53:03.395855 76959 net.cpp:129] Top shape: 16 2048 5 5 (819200)
I1013 10:53:03.395861 76959 net.cpp:137] Memory required for data: 1892352064
I1013 10:53:03.395869 76959 layer_factory.hpp:77] Creating layer pool5
I1013 10:53:03.395900 76959 net.cpp:84] Creating Layer pool5
I1013 10:53:03.395908 76959 net.cpp:406] pool5 <- res5c
I1013 10:53:03.395931 76959 net.cpp:380] pool5 -> pool5
F1013 10:53:03.396807 76959 blob.cpp:32] Check failed: shape[i] >= 0 (-1 vs. 0)
*** Check failure stack trace: ***
    @     0x7fa7eef89e6d  (unknown)
    @     0x7fa7eef8bced  (unknown)
    @     0x7fa7eef89a5c  (unknown)
    @     0x7fa7eef8c63e  (unknown)
    @     0x7fa7f6141829  caffe::Blob<>::Reshape()
    @     0x7fa7f6141581  caffe::Blob<>::Reshape()
    @     0x7fa7f6200958  caffe::PoolingLayer<>::Reshape()
    @     0x7fa7f61b14d8  caffe::CuDNNPoolingLayer<>::Reshape()
    @     0x7fa7f6167d29  caffe::Layer<>::SetUp()
    @     0x7fa7f6240213  caffe::Net<>::Init()
    @     0x7fa7f623e7ea  caffe::Net<>::Net()
    @     0x7fa7f62711e1  caffe::Solver<>::InitTrainNet()
    @     0x7fa7f6270a75  caffe::Solver<>::Init()
    @     0x7fa7f62705a7  caffe::Solver<>::Solver()
    @     0x7fa7f627dc66  caffe::SGDSolver<>::SGDSolver()
    @     0x7fa7f6287ab1  caffe::Creator_SGDSolver<>()
    @           0x4215f5  caffe::SolverRegistry<>::CreateSolver()
    @           0x41bdce  train()
    @           0x41e167  main
    @     0x7fa7e20eeb35  __libc_start_main
    @           0x41aa69  (unknown)
  • 解决方案

错误日志中可以看出问题出在pool5层,它的输入为Top shape: 16 2048 5 5 (819200),即16 * 2048 * 5 * 516batch_size2048channel数量,即kernel个数,feature map大小为5 * 5,在prototxt中找到pool5层,如下:

layer {
    bottom: "res5c"
    top: "pool5"
    name: "pool5"
    type: "Pooling"
    pooling_param {
        kernel_size: 7
        stride: 1
        pool: AVE
    }
}

kernel size为7,比5大,因此将7改为5,重新训练,没问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

AlphaGo Zero你也来造一只,PyTorch实现五脏俱全| 附代码

遥想当年,AlphaGo的Master版本,在完胜柯洁九段之后不久,就被后辈AlphaGo Zero (简称狗零) 击溃了。

940
来自专栏CreateAMind

高分辨率256*256人脸生成效果介绍及代码

众所周知,训练GAN非常困难. In order to train at 256 x 256 we utilize:

813
来自专栏天天P图攻城狮

Android终端上视频转GIF的实现及GIF质量讨论

在生成 GIF 的过程中,最关键的步骤就是生成调色板以及像素到调色板的映射关系。

42711
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

O(1)效率的表面模糊算法优化。

     很久没有写文章了,主要是最近一段时间没有以前那么多空暇空间,内存和CPU占用率一致都很高,应前几日群里网友的要求,今天发个表面模糊的小程序来找回之前...

2086
来自专栏机器之心

自然语言处理领域重要论文&amp;资源全索引

选自GitHub 作者:Kyubyong Park 机器之心编译 参与:刘晓坤、李泽南 自然语言处理(NLP)是人工智能研究中极具挑战的一个分支。随着深度学习等...

3897

应用潜在语义分析技术将文档进行3D可视化

这里使用了 WPF(译者注:Windows Presentation Foundation) 的 3D 展示功能来对一个文档集合进行了可视化,这些文...

2059
来自专栏机器学习人工学weekly

机器学习人工学weekly-2018/7/29

1. Google Cloud Next '18年度大会,宣布AutoML Translate, AutoML Natural Language, Contac...

731
来自专栏数据结构与算法

洛谷P1722 矩阵 II

题目背景 usqwedf 改编系列题。 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行。 众所周知,在中国古代算筹中,红为正,黑为负…… 给定一个1*(2...

3125
来自专栏CVer

[计算机视觉论文速递] 2018-07-07 CVPR 图像分割专场1

这篇文章有 2篇论文速递,都是图像分割方向(CVPR 2018),一篇提出CCB-Cut损失,另一篇是对FCN网络进行了改进。注意,两篇都是CVPR 2018文...

872
来自专栏算法+

浮点数据有损压缩算法 附完整C代码

思路比较简单,就是做一个2D颜色映射表进行插值实现,一般是512*512*3 的颜色表,

4004

扫码关注云+社区