我正在努力学习Chollet的“用Python进行深度学习”。我一直在做一些实现,我被困在了这个上面。我以为我打错了什么东西,但它并没有出现。
有人知道可能发生了什么事吗?
model = get_mnist_model()
model.compile(optimizer="rmsprop",
loss="sparse_categorical_crossentropy",
metrics=["accuracy", RootMeanSquaredError()])
model.fit(train_images, train_labels,
epochs=3,
validation_data=(val_images, val_labels))
test_metrics = model.evaluate(test_images, test_labels)TypeError:不能用抽象方法结果实例化抽象类RootMeanSquaredError
发布于 2022-03-25 16:35:00
我也收到了这个错误,并意识到这是因为我在木星笔记本中的新代码块中定义了result和reset_state方法。一旦我将它们移动到与RootMeanSquaredError类定义相同的块中,您发布的代码就可以正常工作,而不会触发TypeError。
这应该是显而易见的,但直到我看到这个例子,我才意识到它们属于类定义。
发布于 2022-03-19 19:04:41
在模型定义中配置模型编译后再试一次,并使用tf.keras.metrics.RootMeanSquaredError()作为评估度量。
def get_mnist_model():
model = tf.keras.models.Sequential([
keras.layers.Dense(512, activation='relu', input_shape=(784,)),
..
..
keras.layers.Dense(10)
])
model.compile(optimizer="rmsprop",
loss="sparse_categorical_crossentropy",
metrics=["accuracy", tf.keras.metrics.RootMeanSquaredError()])
return modelhttps://stackoverflow.com/questions/70774708
复制相似问题