she*_*hey 3 deep-learning tensorflow pre-trained-model tensorflow2.0
我使用以下代码加载 imagenet 预训练的 VGG19 模型并适合我的自定义数据集。
from keras.applications.vgg19 import VGG19
optim = tf.keras.optimizers.RMSprop(momentum=0.9)
vgg19 = VGG19(include_top=False, weights='imagenet', input_tensor=tf.keras.layers.Input(shape=(224, 224, 3)))
vgg19.trainable = False
# x = keras.layers.GlobalAveragePooling2D()(model_vgg19_pt.output)
x = keras.layers.Flatten()(vgg19.output)
output = keras.layers.Dense(n_classes, activation='softmax')(x)
model_vgg19_pt = keras.models.Model(inputs=[vgg19.input], outputs=[output])
model_vgg19_pt.compile(optimizer=optim,
loss='categorical_crossentropy', metrics=['categorical_accuracy'])
callback = tf.keras.callbacks.LearningRateScheduler(scheduler)
model_vgg19_pt.fit(x_train, y_train, batch_size=20,
epochs=50, callbacks=[callback]
)
Run Code Online (Sandbox Code Playgroud)
在 model.fit() 行上,出现以下错误
KeyError:'优化器无法识别变量dense_1/kernel:0。这通常意味着您尝试调用优化器来分别更新模型的不同部分。请
optimizer.build(variables)在训练循环之前调用可训练变量的完整列表,或使用旧版优化器“tf.keras.optimizers.legacy.{self. 班级。姓名}。'
这是什么意思以及如何解决它?
我得到同样的错误
keras.applications.inception_v3
Run Code Online (Sandbox Code Playgroud)
当使用相同的实现方法时也是如此。
此外,这是在tensorflow cpu上使用jupyter笔记本文件,但是当在安装了tensorflow-gpu的远程计算机上运行时,我收到这些错误。
这适用于优化器 SGD,但不适用于 RMSprop。为什么?
附加 使用这个:
model_vgg19_pt.compile(optimizer=tf.keras.optimizers.RMSprop(momentum=0.9),
loss='categorical_crossentropy', metrics=['categorical_accuracy'])
Run Code Online (Sandbox Code Playgroud)
相反,如上面使用的作品。但有人可以解释一下为什么......
| 归档时间: |
|
| 查看次数: |
10137 次 |
| 最近记录: |