原因是调用trainer.log_dir的时候,lightning会在所有节点做一次同步。因此必须所有节点都有这个log_dir的调用。只在主进程调用就会使程序卡死在这里。 这个最坑的地方在于,调用一次trainer.log_dir实在是太不起眼的操作了。而且要保存就意味着你还会有一些模型和数据相关的操作,一旦发生这个问题很难直接定位到这里,会...
此外,还可以定义一个LightningDataModule来定义如何构造任何数据加载器。如果模型和数据模块都传递给Trainer...
我在配置Trainer的时候,使用的是2nodes,2devices,但是在实际运行的时候,却只有2nodes,1device在跑代码。 随后我扒了扒pytorch_lightning的源码,发现在运行过程中实际上是Strategy的set_world_ranks这个方法设置了程序认为的总卡数大小,而这里面最核心的就是self.cluster_environment这个属性。 那么继续扒self.cluster_en...
此外,还可以定义一个LightningDataModule来定义如何构造任何数据加载器。如果模型和数据模块都传递给Trainer...