Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有人能告诉我这个CNN代码有什么错误吗?_Python_Tensorflow_Deep Learning_Keras - Fatal编程技术网

Python 有人能告诉我这个CNN代码有什么错误吗?

Python 有人能告诉我这个CNN代码有什么错误吗?,python,tensorflow,deep-learning,keras,Python,Tensorflow,Deep Learning,Keras,图像大小为32*32*3 model = Sequential() #- Sequential container. model.add(Convolution2D(6, 5, 5, #-- 6 outputs (6 filters), 5x5 convolution kernel borde

图像大小为32*32*3

model = Sequential()                                                #- Sequential container.

model.add(Convolution2D(6, 5, 5,                                    #-- 6 outputs (6 filters), 5x5 convolution kernel
                    border_mode='valid',
                    input_shape=(3, img_rows, img_cols)))       #-- 3  input depth (RGB)
model.add(Activation('relu'))                                       #-- ReLU non-linearity 
model.add(MaxPooling2D(pool_size=(2, 2)))                           #-- A max-pooling on 2x2 windows
model.add(Convolution2D(16, 5, 5))                                  #-- 16 outputs (16 filters), 5x5 convolution kernel
model.add(Activation('relu'))                                       #-- ReLU non-linearity  
model.add(MaxPooling2D(pool_size=(2, 2)))                           #-- A max-pooling on 2x2 windows

model.add(Flatten())                                                #-- eshapes a 3D tensor of 16x5x5 into 1D tensor of 16*5*5
model.add(Dense(120))                                               #-- 120 outputs fully connected layer
model.add(Activation('relu'))                                       #-- ReLU non-linearity 
model.add(Dense(84))                                                #-- 84 outputs fully connected layer
model.add(Activation('relu'))                                       #-- ReLU non-linearity 
model.add(Dense(num_classes))                                       #-- 10 outputs fully connected layer (one for each class)
model.add(Activation('softmax'))                                    #-- converts the output to a log-probability. Useful for classification problems
代码中的错误:

Traceback (most recent call last):
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py", line 670, in _call_cpp_shape_fn_impl
    status)
  File "/home/saurabh/anaconda3/lib/python3.5/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Negative dimension size caused by subtracting 5 from 3 for 'Conv2D' (op: 'Conv2D') with input shapes: [?,3,32,32], [5,5,32,6].

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "convert.py", line 141, in <module>
    input_shape=(3, img_rows, img_cols)))       #-- 3 input depth (RGB)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/models.py", line 299, in add
    layer.create_input_layer(batch_input_shape, input_dtype)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py", line 401, in create_input_layer
    self(x)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py", line 572, in __call__
    self.add_inbound_node(inbound_layers, node_indices, tensor_indices)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py", line 635, in add_inbound_node
    Node.create_node(self, inbound_layers, node_indices, tensor_indices)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/engine/topology.py", line 166, in create_node
    output_tensors = to_list(outbound_layer.call(input_tensors[0], mask=input_masks[0]))
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/layers/convolutional.py", line 475, in call
    filter_shape=self.W_shape)
  File "/home/saurabh/anaconda3/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 2627, in conv2d
    x = tf.nn.conv2d(x, kernel, strides, padding=padding)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 396, in conv2d
    data_format=data_format, name=name)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2242, in create_op
    set_shapes_for_outputs(ret)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1617, in set_shapes_for_outputs
    shapes = shape_func(op)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1568, in call_with_requiring
    return call_cpp_shape_fn(op, require_shape_fn=True)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py", line 610, in call_cpp_shape_fn
    debug_python_shape_fn, require_shape_fn)
  File "/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py", line 675, in _call_cpp_shape_fn_impl
    raise ValueError(err.message)
ValueError: Negative dimension size caused by subtracting 
回溯(最近一次呼叫最后一次):
文件“/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/common\u-shapes.py”,第670行,在“call\u cpp\u-shape\u-fn\u impl
(状态)
文件“/home/saurabh/anaconda3/lib/python3.5/contextlib.py”,第66行,在__
下一个(self.gen)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/errors\u impl.py”,第469行,处于“未正常”状态时引发异常
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors\u impl.InvalidArgumentError:输入形状为[3,3,32,32],[5,5,32,6]的“Conv2D”(op:“Conv2D”)从3中减去5导致的负维度大小。
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“convert.py”,第141行,在
输入形状=(3,img_行,img_列)))#--3输入深度(RGB)
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/models.py”,第299行,添加
图层。创建\u输入\u图层(批处理\u输入\u形状,输入\u数据类型)
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/engine/topology.py”,第401行,在创建输入层
自我(x)
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/engine/topology.py”,第572行,在调用中__
添加\入站\节点(入站\层、节点\索引、张量\索引)
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/engine/topology.py”,第635行,添加入站节点
创建节点(自、入站层、节点索引、张量索引)
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/engine/topology.py”,第166行,在创建节点中
输出\张量=到\列表(出站\层.call(输入\张量[0],掩码=输入\掩码[0]))
文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/layers/convolutional.py”,第475行,在调用中
过滤器(形状=self.W(形状)
conv2d中的文件“/home/saurabh/anaconda3/lib/python3.5/site packages/keras/backend/tensorflow_backend.py”,第2627行
x=tf.nn.conv2d(x,内核,步幅,填充=填充)
conv2d中的文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/ops/gen_nn_ops.py”,第396行
数据格式=数据格式,名称=名称)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/op_def_library.py”,第759行,在apply_op
op_def=op_def)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第2242行,在create_op中
为输出设置形状(ret)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第1617行,在set_shapes_中用于_输出
形状=形状函数(op)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第1568行,与
回传呼叫\u cpp\u shape\u fn(op,require\u shape\u fn=True)
文件“/home/saurabh/.local/lib/python3.5/site packages/tensorflow/python/framework/common_shapes.py”,第610行,在call_cpp_shape_fn中
调试\u python\u形状\u fn,需要\u形状\u fn)
文件“/home/saurabh/.local/lib/python3.5/site-packages/tensorflow/python/framework/common\u-shapes.py”,第675行,在“call\u cpp\u-shape\u-fn\u impl
提升值错误(错误消息)
ValueError:由于减法而导致的负尺寸标注大小

在这里,我复制并粘贴了错误代码的相关部分

tensorflow.python.framework.errors\u impl.InvalidArgumentError:输入形状为:[?、3,32,32]、[5,5,32,6]的“Conv2D”(op:“Conv2D”)从3中减去5导致负维度大小。

之后的部分是由这一个,并将消失,一旦你修复这个。 但是,在没有看到任何代码的情况下,我无法告诉您到底是什么导致了这种情况。

我认为您使用了“tf”dim\u排序。将keras.json中的值改为“th”,这样第二个参数是过滤器大小,而不是最后一个


另外,您的问题部分是由于使用了
'border\u mode='valid'
。使用
border\u mode='same'
保留卷积的维度

第二条语句导致错误。
img_行
img_列
的值是什么?@PeterWood这是我的代码。img_cols=32和img_rows=32我知道第二条语句导致了错误,但我不明白为什么?这里是我代码的链接。