Neural network Keras致密层错误:类型错误:';int';对象不可调用

Neural network Keras致密层错误:类型错误:';int';对象不可调用,neural-network,keras,conv-neural-network,keras-layer,Neural Network,Keras,Conv Neural Network,Keras Layer,我正试图可视化keras中每个卷积层的输出,如下链接:。我已经修改了一些层以删除错误,但现在我被密集层错误所困扰 np.set_printoptions(precision=5, suppress=True) np.random.seed(1337) # for reproducibility nb_classes = 10 # the data, shuffled and split between tran and test sets (X_train, y_train), (X_tes

我正试图可视化keras中每个卷积层的输出,如下链接:。我已经修改了一些层以删除错误,但现在我被密集层错误所困扰

np.set_printoptions(precision=5, suppress=True)
np.random.seed(1337) # for reproducibility

nb_classes = 10

# the data, shuffled and split between tran and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data("mnist.pkl")

X_train = X_train.reshape(X_train.shape[0], 1, 28, 28)
X_test = X_test.reshape(X_test.shape[0], 1, 28, 28)
X_train = X_train.astype("float32")
X_test = X_test.astype("float32")
X_train /= 255
X_test /= 255
print('X_train shape:', X_train.shape)
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, nb_classes)
Y_test = np_utils.to_categorical(y_test, nb_classes)

i = 4600
pl.imshow(X_train[i, 0], interpolation='nearest', cmap=cm.binary)
print("label : ", Y_train[i,:])

model = Sequential()

model.add(Convolution2D(32, 3, 3, border_mode='same',input_shape = (1,28,28))) #changed border_mode from full -> valid
convout1 = Activation('relu')
model.add(convout1)
model.add(Convolution2D(32, 32, 3))

convout2 = Activation('relu')
model.add(convout2)
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())

model.add(Dense(32*196, 128)) #ERROR HERE

任何意见或建议都将受到高度赞赏。谢谢。

如果您查看一个层的文档,那么您会注意到它接受的第一个参数是输出的形状,第二个参数是
init
,它描述了层权重的初始化方式。在本例中,您提供了
int
作为第二个位置参数,这导致了错误。您应该将代码更改为(假设您希望以128维向量的形式输出):


谢谢你的评论Marcin,我把它改为model.add(稠密(128)),但我收到了“OverflowerError:Range Overses valid bounds”错误。你知道为什么吗?有错误的那一行。我将其从model.add(Dense(32*196,128))更改为model.add(Dense(128))Marcin,除了您的代码之外,我还需要添加“从keras导入后端为K.K.set_image_dim_ordering('th')”,并更改输入_shape=(28,28,1)而不是(1,28,28)的顺序。因此,您的答案确实有效-谢谢:)
model.add(Dense(128))