<p>我能够复制您的问题,如下所示</p>
<pre><code>import tensorflow as tf
from tensorflow.keras import layers
from tensorflow.keras.applications.vgg16 import VGG16
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)
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=tf.keras.optimizers.SGD(learning_ratek=0.005708),metrics=['accuracy'])
</code></pre>
<p>输出:</p>
<pre><code> -
ValueError Traceback (most recent call last)
<ipython-input-20-3d087167b224> in <module>()
8 #print(Last_layer)
9 #print(type(Last_layer))
-> 10 Model_Vgg=keras.layers.Flatten()(Last_layer)
11 Model_Vgg = layers.Dropout(0.5)(Model_Vgg)
12 Model_Vgg = layers.Dense(units=3, activation='softmax') (Model_Vgg)
5 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py in convert_to_eager_tensor(value, ctx, dtype)
96 dtype = dtypes.as_dtype(dtype).as_datatype_enum
97 ctx.ensure_initialized()
-> 98 return ops.EagerTensor(value, ctx.device_name, dtype)
99
100
ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor.
</code></pre>
<p><strong>固定代码:</strong></p>
<p>一旦将<code>keras.layers.Flatten()</code>替换为<code>layers.Flatten()</code>,您的问题就可以得到解决</p>
<p>工作代码如下所示</p>
<pre><code>import tensorflow as tf
from tensorflow.keras import layers, Model
from tensorflow.keras.applications.vgg16 import VGG16
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=layers.Flatten()(Last_layer)
Model_Vgg = layers.Dropout(0.5)(Model_Vgg)
Model_Vgg = layers.Dense(units=3, activation='softmax') (Model_Vgg)
model = Model(inputs =model_1.input,outputs = Model_Vgg )
model.compile(loss='categorical_crossentropy',optimizer=tf.keras.optimizers.SGD(learning_rate=0.005708),metrics=['accuracy'])
</code></pre>
<p>输出:</p>
<pre><code>KerasTensor(type_spec=TensorSpec(shape=(None, 4, 4, 512), dtype=tf.float32, name=None), name='block5_pool/MaxPool:0', description="created by layer 'block5_pool'")
<class 'tensorflow.python.keras.engine.keras_tensor.KerasTensor'>
</code></pre>
<p>注意:你不应该把<code>keras</code>和<code>tensorflow</code>混在一起</p>