1. 程式人生 > >【Tensorflow】ValueError: The `kernel_size` argument must be a tuple of 1 integers. Received: [3, 3]

【Tensorflow】ValueError: The `kernel_size` argument must be a tuple of 1 integers. Received: [3, 3]

使用 tensorflow.contrib.slim 搭建卷積神經網路進行圖片識別,圖片inputs維度為[299,299,3],使用語句如下:

net = slim.conv2d(inputs, 32, [3, 3], stride=2, scope='Conv2d_la_3x3')
net = slim.conv2d(net, 32, [3, 3], scope='Conv2d_2a_3x3')
net = slim.conv2d(net, 64, [3, 3], padding='SAME', scope='Conv2d_2b_3x3')
net = slim.max_pool2d(net, [3, 3], stride=2, scope='Conv2d_3a_3x3')
net = slim.conv2d(net, 80, [1, 1], scope='Conv2d_3b_1x1')
net = slim.conv2d(net, 192, [3, 3], scope='Conv2d_4a_3x3')
net = slim.max_pool2d(net, [3, 3], stride=2, scope='Conv2d_5a_3x3')

報錯資訊如下:

net = slim.conv2d(inputs, 32, [3, 3], stride=2, scope='Conv2d_la_3x3')
……
ValueError: The `kernel_size` argument must be a tuple of 1 integers. Received: [3, 3]

出錯原因:使用slim搭建卷積神經網路,需要以batch為單位進行資料輸入,即inputs的維度應為[batch_size,299,299,3],batch_size即該batch圖片的張數,例如有2000張圖片,可以將其分為5個batch,每個batch400張圖片,輸入即為[400,299,299,3],關於batch的作用和用法請參考 

以下為第一篇博文截圖: