项目场景:
提示:这里简述项目相关背景:
Windows安装的Anaconda,利用Anaconda的Anaconda Powershell Prompt安装tensorflow2.0
问题描述
利用Anaconda学习python已经很久了,但是一直没有太搞清楚怎么用Anaconda安装python包,这次借安装Tensorflow2.0完全搞清楚了。
解决方案:
1. 首先要找到Anaconda Powershell Prompt
2. 为了使安装包速度更快,这里要改下源文件.condarc,我的源文件目录在:C:\Users\Administrator\ .condarc,如果没有.condarc文件,就cmd打开操作台,输入:conda config --set show_channel_urls yes
把里面的内容改成以下即可:
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
show_channel_urls: true
ssl_verify: false
这里要注意一个问题,就是如果这里的- defaults保留的话,当卸载包命令conda uninstall 包名的时候,很容易出现卸载包会卡在solving environment上,所以如果要执行卸载包的命令的时候,最好把 - defaults删掉,再卸载包。如果要安装包的时候,就把- defaults添加回去就行了
在使用conda uninstall package_name 的时候会把其他依赖package_name的包给删了,为了不想把其他包删除掉,只删除特定包需要在指令后续加一个–force,例如我只想删除numpy,而不想删除其他依赖于numpy的包可使用以下命令:
conda uninstall numpy --force
2.1 这里还要补充一点,即为了后续pip 安装使用国内源,可在以下路径C:\Users\Administrator\AppData\Roaming\pip,如果在Roaming中没有pip文件夹,则自己新建pip文件夹,同时在文件夹中新建文件pip.ini,在文件中输入以下内容,后续pip就会使用国内源了,安装速度会很快。
[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
use-mirrors = true
mirrors = https://pypi.tuna.tsinghua.edu.cn
3. 安装Tensorflow2.0
这步就比较简单了,当然前期准备工作要做好,我先前已经安装好了英伟达显卡驱动+CUDA+CUDNN,这个配置是:NVIDIA GTX 1080TI + Tensorflow1.14.0和2.1.0 + Cuda10.1.15 + python3.7 + VS2015 + cudnn7.6,这里我两个都试了一下Tensorflow1.14.0和2.1.0都可以
(base) PS C:\Users\Administrator> conda install tensorflow-gpu=2.1.0
验证一下是否安装成功了可以执行以下代码:
import tensorflow as tf
import timeit
import os
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
print(cpu_a.device, cpu_b.device)
with tf.device('/gpu:0'):
gpu_a = tf.random.normal([10000, 1000])
gpu_b = tf.random.normal([1000, 2000])
print(gpu_a.device, gpu_b.device)
def cpu_run():
with tf.device('/cpu:0'):
c = tf.matmul(cpu_a, cpu_b)
return c
def gpu_run():
with tf.device('/gpu:0'):
c = tf.matmul(gpu_a, gpu_b)
return c
# warm up
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)
print('GPU', tf.test.is_gpu_available())
结果为以下内容就说明安装成功了,就可以学习Tensorflow2.0了