我尝试熟悉Q-learning和Deep Neural Networks,目前尝试使用Deep Reinforcement Learning实现Play Atari.
为了测试我的实现并玩它,我试着尝试一个简单的gridworld.我有一个N x N网格,从左上角开始,在右下角结束.可能的操作是:向左,向上,向右,向下.
即使我的实现与此非常相似(希望它是一个好的),它似乎似乎没有学到任何东西.看看它需要完成的总步数(我猜平均值将达到500,网格大小为10x10,但也有非常低和高的值),它对我来说比其他任何东西都更随机.
我尝试使用和不使用卷积层并使用所有参数,但说实话,我不知道我的实现是否有问题或需要更长时间训练(我让它训练了很长时间)或者什么永远.但至少它接缝会聚,这里是一个训练课程的损失值的情节:
那么这种情况下的问题是什么?
但也可能更重要的是我如何"调试"这个Deep-Q-Nets,在监督培训中有训练,测试和验证集,例如精确和召回,可以对它们进行评估.对于使用Deep-Q-Nets的无监督学习,我有哪些选择,以便下次我可以自己修复它?
最后这里是代码:
这是网络:
ACTIONS = 5
# Inputs
x = tf.placeholder('float', shape=[None, 10, 10, 4])
y = tf.placeholder('float', shape=[None])
a = tf.placeholder('float', shape=[None, ACTIONS])
# Layer 1 Conv1 - input
with tf.name_scope('Layer1'):
W_conv1 = weight_variable([8,8,4,8])
b_conv1 = bias_variable([8])
h_conv1 = tf.nn.relu(conv2d(x, W_conv1, 5)+b_conv1)
# Layer 2 Conv2 - hidden1
with tf.name_scope('Layer2'):
W_conv2 = weight_variable([2,2,8,8])
b_conv2 = bias_variable([8])
h_conv2 = tf.nn.relu(conv2d(h_conv1, W_conv2, 1)+b_conv2) …Run Code Online (Sandbox Code Playgroud) 据我所知,JetBrains大多在其IDE中使用Java(Swing)。
但是我注意到他们所有的IDE都有一个.exe,所以我想知道他们的JDK在哪里/如何执行。特别是因为JDK甚至没有出现在任务管理器中。
我尝试创建一个exe并将JDK作为子进程启动,但是即使如此,任务管理器也确实显示JDK作为单独的应用程序运行。
他们如何修改JDK来实现这一目标?
所以我有一个这样的 cron 工作:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: my-cron-job
spec:
schedule: "0 0 31 2 *"
failedJobsHistoryLimit: 3
successfulJobsHistoryLimit: 1
concurrencyPolicy: "Forbid"
startingDeadlineSeconds: 30
jobTemplate:
spec:
backoffLimit: 0
activeDeadlineSeconds: 120
...
Run Code Online (Sandbox Code Playgroud)
然后我像这样手动触发作业:
kubectl create job my-job --namespace precompile --from=cronjob/my-cron-job
Run Code Online (Sandbox Code Playgroud)
但似乎我可以根据需要多次触发该工作,并且concurrencyPolicy: "Forbid"会被忽略。
有没有办法让手动触发的作业尊重这一点,或者我必须手动检查这一点?