【问题标题】:"ValueError: Unknown optimizer: momentum" correct name for Momentum Optimizer?“ValueError:未知优化器:动量”Momentum Optimizer 的正确名称?
【发布时间】:2019-11-25 07:00:25
【问题描述】:

我正在尝试使用 Momentum 优化器训练我的程序,但是当我输入“momentum”作为优化器时,它给了我这个错误:

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))

我尝试以不同的方式输入动量,但我似乎无法确定正确的名称。这是什么?

【问题讨论】:

  • 您的问题是关于动量的,但您的代码使用了 Ftrl;您要准确使用哪个优化器? (你的keras.__version__tf.__version__ 是什么?)
  • tf 没有普通的“momentum”优化器:TensorFlow Core r2.0 中的tensorflow.org/api_docs/python/tf/optimizers,你能提供给我们你使用的版本

标签: python tensorflow optimization


【解决方案1】:

Tensorflow 没有简单的“动量”优化器:TensorFlow 中的 tensorflow.org/api_docs/python/tf/optimizers。 虽然 Tutorialpoints 引用了它。

不过它有 MomentumOptimizer() 类。

所以你应该先定义一个MomentumOptimizer()类实例,然后你可以作为参数传递给compile()方法。

注意:lr(学习率)和m(动量)参数需要自己定义。

momentum = tf.train.MomentumOptimizer(lr, m)
model.compile(optimizer=momentum, loss="sparse_categorical_crossentropy", metrics=["accuracy"])

【讨论】:

  • 我收到另一个错误,提示“self”未定义。
  • @KhosrawAzizi 如果您想要一个好的答案,请始终提供完整的错误消息、软件版本等。请参阅我的更新答案。
  • 是的,确实...谢谢!
猜你喜欢
  • 2020-11-15
  • 2020-10-02
  • 2020-11-07
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
相关资源
最近更新 更多