【发布时间】:2018-07-30 15:10:42
【问题描述】:
我阅读了一个牛顿或 lbfgs 优化器的示例,如下所示:
optimizer = ScipyOptimizerInterface(loss, options={'maxiter': 100})
with tf.Session() as session:
optimizer.minimize(session)
但我很困惑,因为它与梯度下降优化器不同:
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
with tf.Session() as sess:
sess.run(optimizer, feed_dict = {....})
我的问题是我可以使用如下所示的 L-BFGS 优化器吗? 如果答案不是,我该如何在下面的代码中使用 L-BFGS 优化器?
cost = compute_cost(ys, Z, W_soft, lambd)
train_soft = tf.train.GradientDescentOptimizer(0.5).minimize(cost)
correct_prediction = tf.equal(tf.argmax(Y_hat, 0), tf.argmax(ys, 0))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
init = tf.global_variables_initializer()
mini_batch_data, mini_batch_labels, mini_batch_nums = batch_split(train_X, train_Y, batch_size)
paras_soft = {}
with tf.Session() as sess:
sess.run(init)
for epoch in range(max_iter):
train_soft_cost, _ = sess.run([cost, train_soft], feed_dict = {xs: train_X, ys: train_Y, keep_prob: 1})
【问题讨论】:
-
你试过了吗,结果如何?
标签: python tensorflow