使用带有 DQN 算法的张量板

     2023-03-27     18

关键词:

【中文标题】使用带有 DQN 算法的张量板【英文标题】:Using tensorboard with a DQN algorithm 【发布时间】:2020-12-04 02:09:43 【问题描述】:

对于强化学习,我读到张量板并不理想,因为它提供了每集和/或步骤的输入。由于在强化学习中有数千个步骤,它并没有为我们提供内容的概述。我在这里看到了这个修改过的张量板类:https://pythonprogramming.net/deep-q-learning-dqn-reinforcement-learning-python-tutorial/

班级:

class ModifiedTensorBoard(TensorBoard):
    # Overriding init to set initial step and writer (we want one log file for all .fit() calls)
    def __init__(self, name, **kwargs):
        super().__init__(**kwargs)
        self.step = 1
        self.writer = tf.summary.create_file_writer(self.log_dir)
        self._log_write_dir = os.path.join(self.log_dir, name)

    # Overriding this method to stop creating default log writer
    def set_model(self, model):
        pass

    # Overrided, saves logs with our step number
    # (otherwise every .fit() will start writing from 0th step)
    def on_epoch_end(self, epoch, logs=None):
        self.update_stats(**logs)

    # Overrided
    # We train for one batch only, no need to save anything at epoch end
    def on_batch_end(self, batch, logs=None):
        pass

    # Overrided, so won't close writer
    def on_train_end(self, _):
        pass

    def on_train_batch_end(self, batch, logs=None):
        pass

    # Custom method for saving own metrics
    # Creates writer, writes custom metrics and closes writer
    def update_stats(self, **stats):
        self._write_logs(stats, self.step)

    def _write_logs(self, logs, index):
        with self.writer.as_default():
            for name, value in logs.items():
                tf.summary.scalar(name, value, step=index)
                self.step += 1
                self.writer.flush()

我想让它与这个层一起工作:

n_actions = env.action_space.n
input_dim = env.observation_space.n
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(20, input_dim = input_dim , activation = 'relu'))#32
model.add(tf.keras.layers.Dense(10, activation = 'relu'))#10
model.add(tf.keras.layers.Dense(n_actions, activation = 'linear'))
model.compile(optimizer=tf.keras.optimizers.Adam(), loss = 'mse')

但我还没有让它工作。任何曾经使用过 tensorboard 的人,你知道如何设置它吗?非常感谢任何见解。

【问题讨论】:

【参考方案1】:

我总是在训练 RL 算法期间使用 tensorboard,而无需像上面那样修改任何代码。 只需启动您的作家:

writer = tf.summary.create_file_writer(logdir=log_folder)

开始你的代码:

with writer.as_default():
    ... do everythng indented inside here 

例如如果您想每 100 步将奖励或第一层的权重保存到 tensorboard,只需执行以下操作:

if step % 100 = 0:
    tf.summary.scalar(name="reward", data=reward, step=step)
    dqn_variable = model.trainable_variables
    tf.summary.histogram(name="dqn_variables", data=tf.convert_to_tensor(dqn_variable[0]), step=step)
    writer.flush()

这应该可以解决问题:)

【讨论】:

如何在 Keras 中使用张量板显示输入张量

】如何在Keras中使用张量板显示输入张量【英文标题】:HowtoshowinputtensorwithtensorboardinKeras【发布时间】:2019-07-2611:02:08【问题描述】:我正在使用Keras来训练图像分类器。现在我想检查输入到我的ConvNet的输入图像是否正确,我想... 查看详情

张量板中的黑色图表

...部更新,但没有任何改变。有任何想法吗?谢谢!我正在使用Ubuntu16.04.1,蟒蛇2.7.12,火狐50.0,keras1.1.1和张量流0.11.0。tensorboard【问题讨论】:使用chrome而不是firefox完成了这项工作【参考方 查看详情

无法从 jupyter 启动张量板

...从我的jupyternotebook启动tensorboard时出现以下错误。我正在使用condaenvironment并使用特定于环境的内核,因为tensorflow仅安装在我的环境中。我做错了什么?错误:%tensorboard--logdir 查看详情

用 pytorch 闪电组织张量板图

...lightning【发布时间】:2021-02-2812:23:45【问题描述】:我已使用log_graph=True将默认张量板记录器(frompytorch_lightning.loggersimportTensorBoardLogger)添加到我的pytorch闪电训练器中。当我训练我的模型时,我的图表的第一个视图 查看详情

张量板直方图到 matplotlib

...lotlib绘制它们。我会有更多吸引科学论文的情节。我设法使用tf.train.summary_iterator破解了摘要文件的方法,并转储了我想要转储的直方图(tensorflow.core.framework.summ 查看详情

使用张量板回调时出现 CUPTI 错误

】使用张量板回调时出现CUPTI错误【英文标题】:CUPTIerrorwhenusingtensorboardcallback【发布时间】:2020-04-1802:07:13【问题描述】:我目前正在使用CPU来训练LSTM神经网络。当我运行代码时model.compile(loss=\'sparse_categorical_crossentropy\',optimizer... 查看详情

为啥张量板不显示所有指标?

...标?【发布时间】:2020-12-3011:10:11【问题描述】:我正在使用RayTune进行超参数优化和日志记录。RayTune成功记录了我的标量值并将它们写入Tensorboard日志。这些值确实显示在Tensorboards的“SCALARS”部分中,但在“HPARAMS”部分中,只... 查看详情

深度强化学习-dqn算法原理与代码(代码片段)

...较大。如果状态空间或动作空间连续,则该算法无法使用。因此,Q-learning算法只能用于解决离散低维状态空间和动作空间类问题。DQN算法的核心就是用一个人工神经网络来代替Q-tabel,即动作价值函数。网络的输入为... 查看详情

张量板嵌入投影仪上的剩余点在哪里,这些点不是从张量板上下采样的?

】张量板嵌入投影仪上的剩余点在哪里,这些点不是从张量板上下采样的?【英文标题】:Wherearetheremainingpointsonthetensorboardembeddingprojector,whicharenotdownsampledfromtensorboard?【发布时间】:2020-08-0623:35:12【问题描述】:我已经看到“为... 查看详情

为啥张量板图弯曲得很奇怪?

...【发布时间】:2021-05-0519:57:30【问题描述】:最近我开始使用tensorboard来监控我的模型的学习进度,但是我注意到当标量彼此相距太远时,图形会变得奇怪弯曲(您可以在第二张图上看到它,突然跳跃往往会绘制Y轴和后面的奇怪... 查看详情

在张量板上记录训练和验证损失

...间】:2016-04-0100:09:39【问题描述】:我正在尝试学习如何使用tensorflow和tensorboard。我有一个基于MNISTneuralnettutorial的测试项目。在我的代码中,我构建了一个节点,用于计算数据集中正确分类的数字比例,如下所示:correct=tf.nn. 查看详情

张量板未显示超出某个点的步骤

...tensorboard可视化一个日志文件,但它只显示到某个点。我使用的是tensorboard2.7,我的系统是ubuntu18。我已从Windows更改为Ubuntu,并且在Windows中我能够看到所有步骤。到目前为止,我有66k步, 查看详情

如何将张量板图用于列表/数组?

...个值列表(损失值)。损失=[0.9,0.7,0.6,0.4]我在训练时没有使用tensorboard回调。现在我想在张量板上绘制这些值。我该怎么做?【问题讨论】:【参考方案1】:您需要在TensorBoard中绘图的日志。如果要绘制这些值,只需使 查看详情

有啥方法可以查看张量板图中的参数总数?

】有啥方法可以查看张量板图中的参数总数?【英文标题】:isthereanywaytoseetotalnumberofparametersintensorboardgraph?有什么方法可以查看张量板图中的参数总数?【发布时间】:2021-10-2519:00:15【问题描述】:我在张量流中有一个图表,我... 查看详情

如何使其将张量板日志附加到以前的运行中?

...07:36:28【问题描述】:我以这种方式将tensorboard与keras一起使用:fromkeras.callbacksimportTensorBoardtensorboard=TensorBoard(log_dir=\'./logs\',histo 查看详情

张量板在浏览器上加载后不显示

...:56【问题描述】:我正在实施一个GAN来生成假推文。我想使用Tensorboard可视化我的模型,但它没有显示任何内容。这是我第一次使用Tensorboard,我遵循了YouTube上的教程(https://gist.github.com/dandelionm 查看详情

带有 Shap ValueError 的 DeepExplainer:使用不是符号张量的输入调用了 Layersequential_1

】带有ShapValueError的DeepExplainer:使用不是符号张量的输入调用了Layersequential_1【英文标题】:DeepExplainerwithShapValueError:Layersequential_1wascalledwithaninputthatisn\'tasymbolictensor【发布时间】:2020-09-2121:23:31【问题描述】:我尝试使用带有Sha... 查看详情

使用 DQN 求解最短路径

】使用DQN求解最短路径【英文标题】:usingDQNtosolveshortestpath【发布时间】:2021-09-1623:54:31【问题描述】:我正在尝试找出DQN是否可以解决最短路径算法所以我有这个数据框,它包含一个source,其中有nodesid,end,它代表目的地,... 查看详情