我在基本的CNN中遇到此错误:
AttributeError:'SparseCategoricalCrossentropy'对象没有属性' name '
我以为你可以loss=tf.metrics.SparseCategoricalCrossentropy()
进入model.compile()
?
import tensorflow as tf
import tensorflow_datasets as tfds
import numpy as np
import matplotlib.pyplot as plt
tf.random.set_seed(42)
train, test = tfds.load('fashion_mnist', split=['train', 'test'], as_supervised=True)
train = train.map(lambda x, y: (tf.divide(x, 255), y)).batch(8)
test = test.map(lambda x, y: (tf.divide(x, 255), y)).batch(8)
custom_model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, kernel_size=3, activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Conv2D(64, kernel_size=3, activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')])
custom_model.compile(loss=tf.metrics.SparseCategoricalCrossentropy(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.SparseCategoricalAccuracy()])
early_stopping = [tf.keras.callbacks.EarlyStopping(patience=5)]
conv_dropout_history = custom_model.fit(train, validation_data=test,
epochs=100, callbacks=early_stopping)
有什么方法可以使用此对象,model.compile()
还是我应该只使用tf.metrics.sparse_categorical_crossentropy
(或字符串形式)?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句