我试图使用动量优化器来训练我的程序,但是当我输入“动量”作为优化器时,它会给出以下错误:
ValueError: Unknown optimizer: momentum我使用的代码是:
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
import numpy as np
import time
start_time = time.time()
data = tf.keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = data.load_data()
class_names = ['T-shirt', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot']
train_images = train_images/255.0
test_images = test_images/255.0
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(100, activation="relu"),
keras.layers.Dense(10, activation="softmax")
])
model.compile(optimizer="Ftrl", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(train_images, train_labels, epochs=5)
test_loss, test_acc = model.evaluate(test_images, test_labels)
print("Test acc is:", test_acc)
print("--- %s seconds ---" % (time.time() - start_time))我试着用不同的方式输入动量,但我似乎无法修正正确的名称。那是什么?
发布于 2019-11-23 19:52:30
TensorFlow没有简单的“动量”优化器:docs/python/tf/优化器 in Tensorflow。尽管图托里亚点引用了它。
尽管如此,它还是有MomentumOptimizer()类。
因此,您应该首先定义一个MomentumOptimizer()类实例,然后将其作为参数传递给compile()方法。
注:您需要定义lr(学习速率)和m(动量)参数。
momentum = tf.train.MomentumOptimizer(lr, m)
model.compile(optimizer=momentum, loss="sparse_categorical_crossentropy", metrics=["accuracy"])https://stackoverflow.com/questions/59011145
复制相似问题