运行 tensorboard 和 python 脚本同时存在
Running tensorboard and python script at the same time
我想提交 sbatch 脚本。主要部分是训练深度学习模型,但我还想同时 运行 张量板进行日志记录。
现在我有我的 script.slurm
#!/bin/bash -l
#SBATCH -N 1
#SBATCH --ntasks-per-node=6
#SBATCH --mem-per-cpu=5GB
#SBATCH --gres=gpu:1
tensorboard --logdir:runs
python3 trainloop.py
只有在我关闭 tensorboard 服务器后,它才会启动 tensorboard 和 运行s 脚本。
我改成了
srun tensorboard --logdir:runs &
srun python3 trainloop.py
但现在它出于某种原因循环尝试多次启动 tensorboard 并给出此错误
E1114 21:45:51.826188 47451355829184 program.py:298] TensorBoard could not bind to port 8872, it was already in use
将 tensorboard 服务器 运行ning 与我的脚本一起使用的最佳方法是什么?
添加符号 (&
) 是正确的解决方案,但您不应该使用 srun
,因为 srun 将启动尽可能多的任务(即 tensorboard --logdir:runs
的实例与有使用 --ntasks-per-node=6
请求的任务,这将产生“已在使用”错误。第二个 srun
也是如此,它将启动 6 个 python3 trainloop.py
实例,除非该脚本使用 MPI 幕后.
所以这个
tensorboard --logdir:runs &
python3 trainloop.py
应该做你想做的。
我想提交 sbatch 脚本。主要部分是训练深度学习模型,但我还想同时 运行 张量板进行日志记录。
现在我有我的 script.slurm
#!/bin/bash -l
#SBATCH -N 1
#SBATCH --ntasks-per-node=6
#SBATCH --mem-per-cpu=5GB
#SBATCH --gres=gpu:1
tensorboard --logdir:runs
python3 trainloop.py
只有在我关闭 tensorboard 服务器后,它才会启动 tensorboard 和 运行s 脚本。 我改成了
srun tensorboard --logdir:runs &
srun python3 trainloop.py
但现在它出于某种原因循环尝试多次启动 tensorboard 并给出此错误
E1114 21:45:51.826188 47451355829184 program.py:298] TensorBoard could not bind to port 8872, it was already in use
将 tensorboard 服务器 运行ning 与我的脚本一起使用的最佳方法是什么?
添加符号 (&
) 是正确的解决方案,但您不应该使用 srun
,因为 srun 将启动尽可能多的任务(即 tensorboard --logdir:runs
的实例与有使用 --ntasks-per-node=6
请求的任务,这将产生“已在使用”错误。第二个 srun
也是如此,它将启动 6 个 python3 trainloop.py
实例,除非该脚本使用 MPI 幕后.
所以这个
tensorboard --logdir:runs &
python3 trainloop.py
应该做你想做的。