Python &引用;ValueError:未知优化器:动量“;动量优化器的正确名称?
我试图使用动量优化器来训练我的程序,但当我输入“动量”作为优化器时,它会给我以下错误:Python &引用;ValueError:未知优化器:动量“;动量优化器的正确名称?,python,tensorflow,optimization,Python,Tensorflow,Optimization,我试图使用动量优化器来训练我的程序,但当我输入“动量”作为优化器时,它会给我以下错误: 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.ke
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))
我试着用不同的方式输入momentum,但似乎无法确定正确的名称。它是什么?Tensorflow没有简单的“动量”优化器:在Tensorflow中。
尽管提到了它
然而,它有MomentumOptimizer()
类
因此,您应该首先定义一个MomentumOptimizer()
类实例,然后作为参数传递给compile()
方法
注意:lr
(学习率)和m
(动量)参数需要由您定义
momentum = tf.train.MomentumOptimizer(lr, m)
model.compile(optimizer=momentum, loss="sparse_categorical_crossentropy", metrics=["accuracy"])
您的问题是关于动量的,但您的代码使用Ftrl;您正试图准确地使用哪个优化器?(你的
keras.\uuuu version\uuuuu
和tf.\uuuu version\uuuu
是什么?)tf没有简单的“动量”优化器:在TensorFlow Core r2.0中,你能提供你使用的版本吗?我有另一个错误,说“self”没有定义。@KhosrawAzizi总是提供完整的错误消息、软件版本等,如果你想要一个好的答案。请看我的更新答案。是的,它有…谢谢!