问题标签 [pytorch-lightning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 Tensorboard Pytorch 中绘制散点图?
假设我想要在 TensorBoard 中绘制一个通用散点图,该散点图绘制batch[:, 0], batch[:, 1]
每个时代的第一个。
如何在 TensorBoard 中做到这一点?
一个类似的老问题(2017 年 1 月)有一个解决方法,但我希望我们现在(2020 年 12 月)拥有真正解决方案的技术。
我的尝试还不够:
给了我奇妙的错误
assert(scalar.squeeze().ndim == 0), '标量应该是 0D'
python - 如何在 pytorch-lightning 中正确使用 Tensorboard 的 TSNE?
我在 MNIST 上运行以下代码
即,我从每个验证时期返回
然后使用
并期望它能够工作,就像在doc中一样。
似乎只显示了一个批次,在验证过程中我得到的日志如下
验证:92%|█████████▏| 49/53 [00:01<00:00, 41.05it/s] 警告:嵌入目录存在,您是否为 add_embedding() 设置了 global_step?
recon_batch
如何获得适用于所有时代的 TSNE ?
完整代码供参考:
pytorch - Pytorch 时代闪电节约模型
我想在每次验证循环结束时保存一个检查点。我将其设置val_check_interval
为0.2
在每个时期都有 5 个验证循环,但检查点回调仅在时期结束时保存模型。在每个验证循环之后,我找不到一种简单(或困难)的方法来保存模型。这似乎有点奇怪,因为除了保存检查点之外,我看不到进行验证循环的理由。
最简单的方法是什么?
谢谢,
吉拉德
python - 如何在 pytorch-lightning 中使用 TensorBoard 记录器转储混淆矩阵?
官方文档只说明
这没有显示如何在框架中使用度量。
我的尝试(方法不完整,只显示相关部分):
在第 0 个 epoch 之后,这给出了
它确实在训练前通过了健全性验证检查。
失败发生在返回时validation_step_end
。对我来说意义不大。
使用 mertics 的完全相同的方法可以准确地工作。
如何获得正确的混淆矩阵?
python - 如何为分散在磁盘和每个文件中的数据正确定义 Pytorch 数据集和数据加载器?
- 我的数据分散在多个文件中,例如
f1
,f2
,f3
其路径为p1
,p2
,p3
。 - 每个文件都有 1000 个样本,可以
pandas
用to_pd(path)
. - 由于我已经有一个现有的文件获取系统,因此必须按顺序加载文件。
- 每个文件中的数据可以随机抽样。
我已经看到了从单个文件中加载
和读取文件列表的解决方案,
但不是同时做这两个。
我想不出一种只定义自定义 pytorch 数据集的方法,因为我事先没有所有路径,但它们是在运行时出现的,只有在我完成最后一个路径后才加载一个。
我可以为每个文件创建一个数据集,但随后我必须创建一个知道如何处理这些多个数据集的数据加载器。
在 Pytorch 中这样做的正确方法是什么?
如果有帮助,我也在使用 Pytorch 闪电。
python - Pytorch 闪电数据模块覆盖警告:方法“.setup()”的签名与“LightningDataModule”类中基方法的签名不匹配
以下是一个正常工作的 Pytorch Lightning DataModule。
Pycharm 不setup
喜欢
方法“PressureDataModule.setup()”的签名与类“LightningDataModule”中的基本方法的签名不匹配
- 如果没有匹配,为什么 Pycharm 会哭?
- 是因为参数不同吗?正确的参数数量是多少?
解决此问题的正确方法是什么?
python - 用于时间序列预测的变压器
我有离散的日常功能和目标时间序列,我正在尝试为 seq2seq 建模实现一个基本的 Transformer。我按如下方式构建我的监督数据:
下一个序列向前移动一个位置。总的来说,我有输入数据形状[batch_size, in_sequence_len, num_features]
,目标是[batch_size, out_sequence_len, 1]
. 我知道编码器输入应该是形状[batch_size, in_seq_len, num_features]
和解码器需要[batch_size, out_seq_len, num_features]
。但是我应该如何转换我的批次以适合变压器输入?
pytorch - 在 PyTorch Lightning 中实现预处理的位置(例如标记输入文本)
是否有约定在 PyTorch Lightning 中实现某种predict()
方法,在使用 执行实际预测之前进行预处理forward()
?
在我的例子中,我有一个由嵌入层和几个全连接层组成的文本分类器。文本在传递到嵌入层之前需要进行标记。在训练和评估期间,LightningDataModule
'setup()
方法可以完成工作。
现在,我想知道在生产过程中进行推理的最佳实践是什么。我可以在其中添加一个predict()
方法,LightningModule
我可以在其中编写与LightningDataModule.setup()
. 但是,当然,我不想复制代码。
在官方 PyTorch Lightning 文档中链接的这个社区示例prepare_sample()
项目中,作者定义了一个由他们的函数LightningModule
使用的predict()
函数,并且也传递给LightningDataModule
.
这是处理预处理的正确方法吗?另外,为什么没有prepare_sample()
或predict()
在LightningModule
?对我来说,这似乎是一个常见的用例,例如:
现在我考虑了一下,predict()
也应该forward()
以与评估代码相同的方式处理结果,例如选择具有最高输出的类或选择输出大于某个阈值的所有类 - 一些不应重复的代码。