安装Ubuntu 20.04 安装NVIDIA 驱动 配置Pytouch 和tensorflow环境

本机环境:戴尔G3 3579
win10 ,系统在128固态硬盘

安装Ubuntu20.04

1开机按F2进入BIOS

2 security boot 设置disable

3 参考


戴尔g3的bios中磁盘管理模式_tensorflow

安装NVIDIA驱动

最开始安装驱动,首先禁止nouveau

然后卸载原先的nvidia驱动(如果有)

参考:


但是装完出现这种情况

nvidia-smi有输出,nvidia-settings有反映,而且还生成了快捷图标

但是重启生效后,在设置->关于:显卡由原来的集成显卡630变成了lvib什么的

虽然不影响审定学习环境搭建但是总感觉以后会挂的

还有一种情况是 ,装完成驱动后,在设置->关于:显卡显示GTX1060。但是每次开机或者关机显示:dev/sda5 clean …dev/sda6 clean.等2s后关机,开机也是这样。

还有一种情况是,环境搭建好了,驱动什么的都好了,但是一个命令,当时在安装网易云音月,要弄什么依赖,然后一行命令过去,开机无限闪现dev/sda6 clean 。ctro-alt-f1能打开tty,但是用户名和密码来不及输入,tty闪退,1s不到。然后进不了系统。最后重装系统

现在:

装完ubuntu系统后,什么更新都不要,也不要禁止nouveau。第一件事情直接装驱动,

戴尔g3的bios中磁盘管理模式_戴尔g3的bios中磁盘管理模式_02


重启后,麻事情没有。

搭建pytouch

安装miniconda3,

换中科大,清华源

conda create -n pytouch python=3.7

conda activate pytouch

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

conda install pytorch=0.4.1 torchvision cuda90

安装pycharm

戴尔g3的bios中磁盘管理模式_戴尔g3的bios中磁盘管理模式_03


点击tools->create desktop entry 直接生成快捷键

设置编译器为pytouch

注意:运行代码可能会出现:CUDA_HOME环境变量没有设置。这个时候需要在ubuntu上面安装CUDA和CUDNN(照着Ubuntu18.04就行),因为环境pytracking 需要的cuda是10.0,所以安装的也是cuda10.0,若安装了10.1,prroi就会报错了(已经犯过错误了),到时候还要卸载cuda和bashrc环境,参考安装CUDA/CUDNN

戴尔g3的bios中磁盘管理模式_重启_04


填写代码测试使用了GPU:

import torch
flag = torch.cuda.is_available()
print(flag)

ngpu= 1
# Decide which device we want to run on
device = torch.device("cuda:0" if (torch.cuda.is_available() and ngpu > 0) else "cpu")
print(device)
print(torch.cuda.get_device_name(0))
print(torch.rand(3,3).cuda()) 
# True
# cuda:0
# GeForce GTX 1060
# tensor([[0.5772, 0.5287, 0.0946],
#         [0.9525, 0.7855, 0.1391],
#         [0.6858, 0.5143, 0.8188]], device='cuda:0')

安装tensorflow14

import tensorflow as tf
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
import warnings
warnings.filterwarnings("ignore")
hello=tf.constant("Hello,Tensorflow")
print(hello)
a=tf.constant([1.0,2.0]) #定义常数
b=tf.constant([3.4,4.0])
result1=a+b
print("a+b=",result1)
c=tf.constant([[3.0],[1.4]])
result2=a+c
sess=tf.Session()
print("result1:",result1)#显示结果是“add:0"的张量,shape只有一个元素,即维度是1
# 2表示第一个维度有两个元素,且是浮点型
try:
  print(sess.run(result1))
  print("result2:",result2)
  print(sess.run(result2))
  print(sess.run(hello))
except:
    #异常处理
    print("Exception")
finally:
    #关闭会话,释放资源
    sess.close()

戴尔g3的bios中磁盘管理模式_重启_05