我正在尝试使用Keras的VGG16,我标记了include_top=false
但我面临的错误是ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor.
下面是代码:
input_shape = (150,150,3)
model_1 = VGG16(weights='imagenet',include_top=False,input_shape=input_shape)
Last_layer=model_1.layers[-1].output
print(Last_layer)
print(type(Last_layer))
Model_Vgg=keras.layers.Flatten()(Last_layer) #<---- error rised here
#Model_Vgg=keras.Model(model.input,layer_output)
Model_Vgg = layers.Dropout(0.5)(Model_Vgg)
Model_Vgg = layers.Dense(units=3, activation='softmax') (Model_Vgg)
model = keras.Model(inputs =model_1.input,outputs = Model_Vgg )
model.compile(loss='categorical_crossentropy',optimizer=optimizers.SGD(lr=0.005708),metrics=['accuracy'])
monitor = EarlyStopping(monitor='accuracy',patience=50, mode='auto', restore_best_weights=True)
model.fit(X_Train,Y_Train,callbacks=[monitor],epochs=280,verbose=0)
(loss, accuracy) = model.evaluate(X_Test, Y_Test, batch_size=32, verbose=50)
print("[INFO] loss={:.4f}, accuracy: {:.4f}%".format(loss,accuracy * 100))
它表明print(type(Last_layer))
=<class 'keras.engine.keras_tensor.KerasTensor'>
我不知道为什么这行引用了None-type对象
我找到了这个解决方案,它对我有效
我能够复制您的问题,如下所示
输出:
固定代码:
一旦将
keras.layers.Flatten()
替换为layers.Flatten()
,您的问题就可以得到解决工作代码如下所示
输出:
注意:你不应该把
keras
和tensorflow
混在一起我对代码也有同样的问题:
然后我把它改成了
它成功了
相关问题 更多 >
编程相关推荐