Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 用于多数字识别的Keras_Python_Keras_Conv Neural Network_Mnist - Fatal编程技术网

Python 用于多数字识别的Keras

Python 用于多数字识别的Keras,python,keras,conv-neural-network,mnist,Python,Keras,Conv Neural Network,Mnist,我试图通过Keras(theano后端)中的一些练习来理解CNN。我无法拟合下面的模型(错误:AttributeError:'Convolution2D'对象没有属性'get_shape')。此数据集是来自MNIST数据的图像(28*28),这些图像连接在一起最多五个图像。所以输入的形状应该是1,28,140(灰度=1,高度=28,宽度=28*5) 目标是预测数字序列。谢谢 batch_size = 128 nb_classes = 10 nb_epoch = 2 img_rows =28 i

我试图通过Keras(theano后端)中的一些练习来理解CNN。我无法拟合下面的模型(错误:AttributeError:'Convolution2D'对象没有属性'get_shape')。此数据集是来自MNIST数据的图像(28*28),这些图像连接在一起最多五个图像。所以输入的形状应该是1,28,140(灰度=1,高度=28,宽度=28*5)

目标是预测数字序列。谢谢

batch_size = 128
nb_classes = 10
nb_epoch = 2

img_rows =28
img_cols=140
img_channels = 1

model_input=(img_channels, img_rows, img_cols)

x = Convolution2D(32, 3, 3, border_mode='same')(model_input)
x = Activation('relu')(x)
x = Convolution2D(32, 3, 3)(x)
x = Activation('relu')(x)
x = MaxPooling2D(pool_size=(2, 2))(x)
x = Dropout(0.25)(x)
conv_out = Flatten()(x)

x1 = Dense(nb_classes, activation='softmax')(conv_out)
x2 = Dense(nb_classes, activation='softmax')(conv_out)
x3 = Dense(nb_classes, activation='softmax')(conv_out)
x4 = Dense(nb_classes, activation='softmax')(conv_out)
x5 = Dense(nb_classes, activation='softmax')(conv_out)

lst = [x1, x2, x3, x4, x5]

model = Sequential(input=model_input, output=lst)

model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])

model.fit(dataset, data_labels, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1)

问题出在输入层。执行以下更改:

model_input=Input(shape=(img_channels, img_rows, img_cols))
如果您的
image\u dim\u排序是
th
。从
keras.layers
导入
输入

我还注意到有多个输出。因此,您需要使用函数模型,而不是顺序模型。只需将其更改为:

model = Model(input=model_input, output=lst)

keras.models导入
Model

谢谢您的回复。我仍然知道张量对象不可iterable。是
model.fit()处的错误。
。如果是这样的话,我猜
data\u labels
应该是长度为5的numpy数组列表。每个numpy数组都应该是维度
数据集。shape[0]x nb_类
Hi错误在激活层。这里是完整代码的链接:感谢您的帮助!这是数据来源:好的,我注意到一些问题。1. <代码>数据集=数据集[:,np.newaxis,:,:]
这将修复通道中的输入形状。2.根据创建的张量图,输出不正确。格式应如前面评论中所述。我已经对粗略修复的要点进行了评论(可能有一些错误,但它会给你一个想法)。