小编nat*_*chz的帖子

为什么我的Deep Q Network不能掌握简单的Gridworld(Tensorflow)?(如何评估Deep-Q-Net)

我尝试熟悉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)

python neural-network q-learning deep-learning tensorflow

19
推荐指数
1
解决办法
2434
查看次数

JetBrains如何为他们的IDE创建.exe文件?

据我所知,JetBrains大多在其IDE中使用Java(Swing)。

但是我注意到他们所有的IDE都有一个.exe,所以我想知道他们的JDK在哪里/如何执行。特别是因为JDK甚至没有出现在任务管理器中。

我尝试创建一个exe并将JDK作为子进程启动,但是即使如此,任务管理器也确实显示JDK作为单独的应用程序运行。

他们如何修改JDK来实现这一目标?

java jetbrains-ide intellij-idea

6
推荐指数
1
解决办法
88
查看次数

手动触发的 cron 作业可以遵守并发策略吗?

所以我有一个这样的 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"会被忽略。

有没有办法让手动触发的作业尊重这一点,或者我必须手动检查这一点?

kubernetes kubernetes-cronjob kubernetes-jobs

5
推荐指数
1
解决办法
2520
查看次数