安装TensorFlow-gpu2.1.0(stable)超简单的配置!!!

发布于:2021-06-14 07:01:54



按照TensorFlow-gpu2.1.0(stable)
1.创建虚拟环境2.安装3.测试4.应用


1.创建虚拟环境

方法一:
conda create -n tf_2g python=3.7(速度可能有点慢,需要多试几次),选择yes
进入该环境:conda activate tf_2g
方法二:
使用virtualenv创建新的虚拟环境。
优点:在pycharm中创建环境,可以继承全局的安装包。这样,安装模块的时候,就不用总是切换到该环境下,再安装一遍。而且,可以随意使用conda或pip安装的包,不用担心在该环境中,提示找不到包。
缺点:需要手动下载cuda和cudnn,配置环境,太麻烦了。这里只是示意在pycharm中如何添加。
首先,在该目录下新建tf_2g文件夹。例如,我的目录是E:softminiconda3envs
然后,在pycharm中添加python解释器,创建新的环境。记得勾选“inherit global packages”:


虽然这里没有显示任何安装包,但是,我们在命令行测试:

可以导入pandas包(在全局中安装过,可以在E:softminiconda3Libsite-packages中找到)。后面TensorFlow的安装和配置,参考官网:
https://tensorflow.google.cn/install/pip,以及GPU支持。


ps:这个虚拟环境虽然可以通过conda进入(因为刚好放在了它的env目录下),但是,无法在其中安装单独的包。会报错:

还是,把全局的安装包手动复制到虚拟环境中吧。


退出虚拟环境:conda deactivate


2.安装

根据官网,选择cudatoolkit的版本

安装GPU版本支持,拥有Nvidia的GPU的windows一般都有默认驱动的,只需要安装cudatoolkit 与 cudnn包就可以了,要注意一点需要安装cudatoolkit 10.1 版本,注意一点,如果系统的cudatoolkit小于10.1需要更新一下至10.1


cmd输入:conda install cudatoolkit=10.1 cudnn
(速度可能有点慢,需要多试几次),选择yes
(信息:cudnn-7.6.5-cuda10.1_0,cudatoolkit-10.1.243)


在tf_2g环境中,安装tensorflow-gpu(2.1.0)
(tf_2g) C:UsersSunjh>pip install tensorflow-gpu==2.1.0
(顺便安装了许多依赖包)


在pycharm中,添加该环境下的python解释器:


3.测试

新建demo.txt,写入:


kimport tensorflow as tf
version = tf.__version__
gpu_ok = tf.test.is_gpu_available()
print("tf version:",version,"
use GPU",gpu_ok)

保存,重命名为“demo.py”
进入该目录下:



cd C:UsersSunjhDesktop
python demo.py



输出结果:


4.应用

线性拟合代码,main.py


import tensorflow as tf

X = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
y = tf.constant([[10.0], [20.0]])


class Linear(tf.keras.Model):
def __init__(self):
super().__init__()
self.dense = tf.keras.layers.Dense(
units=1,
activation=None,
kernel_initializer=tf.zeros_initializer(),
bias_initializer=tf.zeros_initializer()
)

def call(self, input):
output = self.dense(input)
return output



# 以下代码结构与前节类似
model = Linear()
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01)
for i in range(100):
with tf.GradientTape() as tape:
y_pred = model(X) # 调用模型 y_pred = model(X) 而不是显式写出 y_pred = a * X + b
loss = tf.reduce_mean(tf.square(y_pred - y))

grads = tape.gradient(loss, model.variables) # 使用 model.variables 这一属性直接获得模型中的所有变量
optimizer.apply_gradients(grads_and_vars=zip(grads, model.variables))
if i % 10 == 0:
print(i, loss.numpy())
print(model.variables)

如果报错:
SyntaxError: Non-UTF-8 code starting with ‘xd2’ in file main.py on line 22, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解决:删去其中的中文注释


最后输出:

相关推荐

最新更新

猜你喜欢