小编Dav*_*ini的帖子

VS Code Python TensorBoard 集成不起作用

VS Code 的 Python 扩展最近发布了 TensorBoard 集成,但它似乎对我不起作用。

每当我从命令面板运行“Python:启动 TensorBoard”时,我都会看到 此屏幕。这是 TensorBoard 页面,其中显示默认消息“当前数据集没有活动的仪表板”。命令 plate 命令有两个日志目录选项,“使用当前工作目录”和“选择另一个文件夹”,但似乎都不起作用。

但是,当我使用终端命令正常运行 TensorBoard 时

tensorboard --logdir=...
Run Code Online (Sandbox Code Playgroud)

一切正常。这让我认为我的日志目录和张量板安装设置良好,问题出在 VS Code 或 Python 扩展上。

我应该提到我使用 PyTorch 和 PyTorch Lightning 生成日志,而不是 Tensorflow。(就上下文而言,我使用的是 macOS Big Sur)

有谁知道解决方法是什么?

python visual-studio-code tensorboard vscode-python pytorch-lightning

9
推荐指数
0
解决办法
2346
查看次数

Pytorch Lightning:在训练期间获取完整训练数据的模型输出

TL;DR:在 on_train_epoch_start 期间,我想获取所有训练数据上的模型输出,作为一些预训练计算的一部分。我问的是,闪电友好的方法是什么。

这是一个奇怪的问题。

在我的项目中,每 10 个时期我都会选择完整训练数据的一个子集,并仅在该子集上进行训练。在计算要使用哪个子集的过程中,我计算了训练数据集中每个数据点的模型输出。

我的问题是,在 pytorch lighting 中做到这一点的最佳方法是什么?目前我有一个带有on_train_epoch_start钩子的回调。在此挂钩期间,回调从生成自己的数据加载器trainer.datamodule.train_dataloader(),并手动迭代数据加载器,计算模型输出。这并不理想,对吧?

这让我遇到了 pytorch lighting 的问题。例如,当在 GPU 上训练时,我收到错误,因为我的回调使用其自己的数据加载器,而不是训练器的train_dataloader,因此它不在 GPU 上。但是,我无法使用 trainer's train_dataloader,因为在我的回调选择其子集之后,它将 trainer's 更改train_dataloader为该子集,而不是完整的数据集。

我想我有两个主要问题:

  1. 有什么方法可以避免制作单独的数据加载器?我可以以某种方式调用火车环路吗?在完整数据集上获取模型输出似乎是一个如此简单的操作,我认为这只是一个简单的操作。
  2. 如何获取/使用与所有 Pytorch Lightning 自动修改同步的数据加载器?(例如 GPU/CPU、数据加载工作线程、pin_memory)

python pytorch pytorch-lightning

5
推荐指数
0
解决办法
946
查看次数