说明
- 介绍tf的安装流程
- windows10 + python3.6+conda 4.5.4+tf2.4.1
- tensorflow 2.x不再区分是否gpu,当检测到gpu并安装cuda后,自动调用gpu,否则就
是CPU版本 - 使用代理,就不用配置各种镜像,也不会造成安装各种超时问题
安装conda
- 下载Anaconda3-5.2.0-Windows-x86_64.exe
- 把本地python环境变量清空,避免造成影响
- 安装成功后输入命令查看python版本
C:\Users\Admin>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
- 查看conda
C:\Users\Admin>conda --version
conda 4.5.4
- 设置国内环境变量
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
打开C盘用户目录
C:\Users\Admin.condarc文件就能看到内容
ssl_verify: true
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
- 删除上述配置文件.condarc中的-defaults,最终配置
ssl_verify: true
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
show_channel_urls: tru
安装conda 环境
- 在命令行中使用以下命令创建 conda 环境(如果使用 Windows,最好在命令行中以管理员身份执行)
conda create -n tensorflow python=3.6
- 激活tensflow的环境
C:\Users\Admin>activate tensorflow
(tensorflow) C:\Users\Admin>
- 出现tensorflow就说明已经激活成功
- 检测当前环境中的python的版本:
python --version
(tensorflow) C:\Users\Admin>python --version
Python 3.6.13 :: Anaconda, Inc.
# 默认用pip install tensorflow 出现超时
pip3 install --upgrade tensorflow --default-timeout=1000
- 如果还是无法成功,建议采用离线安装的方式,就是下载好了依赖包,然后用
pip install XXX.whl
,我下载的为:tensorflow-2.4.1-cp36-cp36m-win_amd64.whl
- 导入tensorflow,先输入python,然后在导入
(tensorflow) D:\exe>python
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import tensorflow as tf
2021-05-11 16:32:08.668952: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found
2021-05-11 16:32:08.669677: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
发现错误,第一个错误去下载cudart64_110.dll文件,然后放到
C:\Windows\System32
,就可以解决第二个错误是无法检查到gpu,可以忽略
若想退出tensorflow的环境:
deactivate
(tensorflow) C:\Users\Admin>deactivate
C:\Users\Admin>
- 打开
Anaconda Navigator
-
安装spyder
- spyder一直失败,尝试换成了国内的源还是如此,参考这里
-
最终解决方案
-
conda config --remove-key channels
恢复默认源 - 挂代理
-
- 安装好spyder后,点击启动输入下面代码
import tensorflow as tf
#查询TensorFlow版本
print(tf.__version__)
#定义a和b为两个常量
a = tf.constant([1, 2], name="a")
b = tf.constant([2, 3], name="b")
print(a)
print(b)
#随机生成一个正态分布
output = tf.random.normal([5,3])
print(output)
#创建2个矩阵并进行相乘
matrix1 = tf.constant([[3,3]])
matrix2 = tf.constant([[1, 2],[3, 4]])
product = tf.matmul(matrix1,matrix2)
print(matrix1)
print(matrix2)
print(product)
print(product.numpy())
- 展示结果
2.4.1
tf.Tensor([1 2], shape=(2,), dtype=int32)
tf.Tensor([2 3], shape=(2,), dtype=int32)
tf.Tensor(
[[ 2.341378 -1.2261659 2.0691235 ]
[-0.53991026 -0.525851 1.239074 ]
[-0.74831325 1.2731262 -1.846453 ]
[-1.2790207 0.6241631 0.10583801]
[-0.11307541 0.9892029 -0.926992 ]], shape=(5, 3), dtype=float32)
tf.Tensor([[3 3]], shape=(1, 2), dtype=int32)
tf.Tensor(
[[1 2]
[3 4]], shape=(2, 2), dtype=int32)
tf.Tensor([[12 18]], shape=(1, 2), dtype=int32)
[[12 18]]
Tensor(张量)
- Tensor(张量)是tensorflow框架使用的基本数据结构,张量即多维数组,在python中可以理解为嵌套的多维列表。张量的维度称为阶,0阶张量又称为标量,1阶张量又称为向量,2阶张量又称为矩阵。
# 0阶张量 标量
5
# 1阶张量 向量大小为3
[1., 2., 3.]
# 2阶张量 2*3矩阵
[[1., 2., 3.],
[4., 5., 6.]]
# 3阶张量 大小为2*3*2
[[[1., 2.],[3., 4.],[5., 6.]],
[[7., 8.],[9., 10.],[11., 12.]]]
关于tensorflow中的session
- 1.0版本用来运算的,2.0中已经舍弃,参考【TensorFlow2.0】TensorFlow2.0与1.0对比
关于1、2和3维数组解释
- 把一个数当作一个鸡蛋,那么一个int型的变量就是一个鸡蛋,对吧。
现在建立一个一维数组int[5]:这个就相当于在你面前放了一排5个鸡蛋,这里也没问题吧。 - 接下来到二维数组int[3][4]:首先,由二维数组的第二维[4]我们可以确定一排是4个鸡蛋,这个跟刚才的一维数组一样。那么之前的[3]是什么呢?那就是一共有几排了!于是int[3][4]相当于在你面前放了3排的鸡蛋,一排4个~
- 再到三维数组int[3][4][5]:第三维的[5]就是之前一位数组里的一排5个鸡蛋,第二维的[4]就是一共有4排。那么这个[3]呢?那就是如果把这4排每排5个的鸡蛋看成一个小组,即4*5=20个鸡蛋是一个组,在你面前就放着3组的鸡蛋~
不知道明白了没有? - 来自于这里 三维组和二维数组的区别