我正在使用Tensorflow来实现强化学习算法,我希望在另一个线程中进行学习步骤,以便代理可以更顺利地与环境交互。 (这类似于我们在一个线程中执行梯度下降并在另一个线程中进行推理的情况)这让我想到Tensorflow是否是线程安全的? 每当我打电话给sess.run时,我应该获得锁吗? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我目前正在实现一种梯度下降算法,其中包括使用 goldstein-armijo 的动态线搜索方法 - 回溯方法。 它在一定程度上起作用,但随后无法收敛,无法拆分步长并收敛到最小值。 由于我对该主题相对较新,我真的不知道如何调整或更改它以使其更加收敛。
# starting position
startx = np.array([x,y])
x_arr = [startx]
x = x_arr[-1]
beta = 0.1
alpha = 0.00001
# search direction,
# f_gradient returns the gradient
p = -f_gradient(x_arr[-1])
# cutoff
cutoff_thressh = 1*(10**(-8))
#initial stepsize
stp = 1
derphi = np.dot(f_gradient(x),p)
while curr_it < lim_it:
if np.linalg.norm(f_gradient(x)) < cutoff_thressh:
break
# armijo conditions to reduce stepsize
while f(x + stp * p) > (f(x) + alpha * stp * derphi)):
stp*=beta
gradient_mult = stp*f_gradient(x)
x_new = np.subtract(x, gradient_mult)
x_arr.append(x_new.tolist())
任何建议都是有帮助的! 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.