首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化器数组

优化器数组
EN

Stack Overflow用户
提问于 2017-04-29 13:52:04
回答 1查看 447关注 0票数 0

我想用几个优化器测试一个tensorflow分类器。使用此代码:

代码语言:javascript
复制
optimizers = [
tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy),
tf.train.AdadeltaOptimizer(learning_rate).minimize(cross_entropy),
tf.train.AdagradOptimizer(learning_rate).minimize(cross_entropy),
tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy),
tf.train.FtrlOptimizer(learning_rate).minimize(cross_entropy),
tf.train.ProximalGradientDescentOptimizer(learning_rate).minimize(cross_entropy),
tf.train.ProximalAdagradOptimizer(learning_rate).minimize(cross_entropy),
tf.train.RMSPropOptimizer(learning_rate).minimize(cross_entropy)]

for optimizer in optimizers:
    print(optimizer)

我发现了一个错误:

TypeError:init()缺少一个必需的位置参数:'name‘

有什么帮助吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 15:08:05

遵循MNIST教程 on tensorflow.org并将其与优化器数组相结合,我可以获得所有的准确率。您收到的错误消息似乎来自不同的地方。

代码:

代码语言:javascript
复制
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
learning_rate = 0.5

optimizers = [
    tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.AdadeltaOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.AdagradOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.FtrlOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.ProximalGradientDescentOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.ProximalAdagradOptimizer(learning_rate).minimize(cross_entropy),
    tf.train.RMSPropOptimizer(learning_rate).minimize(cross_entropy)]

for optimizer in optimizers:
    sess = tf.InteractiveSession()
    tf.global_variables_initializer().run()
    for _ in range(1000):
      batch_xs, batch_ys = mnist.train.next_batch(100)
      sess.run(optimizer, feed_dict={x: batch_xs, y_: batch_ys})
    correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

输出: 0.9157 0.8832 0.9169 0.098 0.917 0.9149 0.917 0.098

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43696454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档