我需要在python脚本中设置一些环境变量,我希望从python(shell脚本)调用的所有其他脚本都是子进程,以查看环境变量集.该值是一个数字.
如果我这样做os.environ["DEBUSSY"] = 1
,它抱怨说1
必须是字符串.我也想知道在设置之后如何在python中读取环境变量(在脚本的后面部分).
我运行了一个关于深度学习网络的代码,首先我训练了网络,它运行良好,但是运行到验证网络时出现此错误。
我有五个 epoch,每个 epoch 都有一个训练和验证的过程。我在第一个纪元验证时遇到了错误。所以我没有运行验证代码,我发现代码可以运行到第二个纪元并且没有错误。
我的代码:
for epoch in range(10,15): # epoch: 10~15
if(options["training"]["train"]):
trainer.epoch(model, epoch)
if(options["validation"]["validate"]):
#if(epoch == 14):
validator.epoch(model)
Run Code Online (Sandbox Code Playgroud)
我觉得验证代码可能有一些错误。但我找不到那个。
我在我的机器(运行 Ubuntu 18.04 和 Anaconda 和 Python 3.7)中添加了一个 GeForce GTX 1080 Ti,以便在使用 PyTorch 时利用 GPU。两张卡都正确识别:
$ lspci | grep VGA
03:00.0 VGA compatible controller: NVIDIA Corporation GF119 [NVS 310] (reva1)
04:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
Run Code Online (Sandbox Code Playgroud)
NVS 310 处理我的 2 显示器设置,我只想将 1080 用于 PyTorch。我还安装了当前在存储库中的最新 NVIDIA 驱动程序,这似乎没问题:
$ nvidia-smi
Sat Jan 19 12:42:18 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.87 Driver Version: 390.87 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | …
Run Code Online (Sandbox Code Playgroud) 我有一个问题在哪里
import torch
print(torch.cuda_is_available())
Run Code Online (Sandbox Code Playgroud)
将打印 False,并且我无法使用可用的 GPU。我已经在环境中进行了尝试conda
,我安装了与我拥有的 NVIDIA 驱动程序相对应的 PyTorch 版本。我也在 docker 容器中尝试过,我也做了同样的事情。我已在远程服务器上尝试过这两个选项,但都失败了。我知道我已经安装了正确的驱动程序版本,因为我在安装 PyTorch 之前检查了版本nvcc --version
,并且检查了nvidia-smi
可以正确显示机器上 GPU 的 GPU 连接。
另外,我检查了这篇文章并尝试导出CUDA_VISIBLE_DEVICES
,但没有运气。
在服务器上,我有 NVIDIA V100 GPU,CUDA 版本为 10.0(适用于 conda 环境),在我构建的 docker 容器上有版本 10.2。任何帮助或推动正确的方向将不胜感激。谢谢!