首页 > 解决方案 > 无法将 1.0 转换为 dtype int32 的 EagerTensor

问题描述

我正在尝试使用keras制作cnn并在cnn的密集层之后使用SVM作为分类器。所以我试图在密集层之后获得输出。

model = Sequential()
model.add(Conv1D(filters=64, kernel_size=(5), input_shape=(12,800), strides=2, padding='valid', activation='relu'))
model.add(AveragePooling1D(pool_size=2,strides=2,padding='same'))

model.add(Flatten())
model.add(Dense(7 ,activation='softmax'))

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

我在密集层之后获取输出的代码

inp = model.input                                           # input placeholder
outputs = [layer.output for layer in model.layers]          # all layer outputs
functor = k.function([inp, k.learning_phase()], outputs )   # evaluation function

# Testing
test = np.random.random(input_shape)[np.newaxis,...]
layer_outs = functor([test, 1.])

但我收到此错误 TypeError: Cannot convert 1.0 to EagerTensor of dtype int32

标签: pythontensorflowkerassvm

解决方案


推荐阅读