說(shuō)明
- 介紹tf的安裝流程
- windows10 + python3.6+conda 4.5.4+tf2.4.1
- tensorflow 2.x不再區(qū)分是否gpu纳本,當(dāng)檢測(cè)到gpu并安裝cuda后网梢,自動(dòng)調(diào)用gpu,否則就
是CPU版本 - 使用代理,就不用配置各種鏡像换况,也不會(huì)造成安裝各種超時(shí)問(wèn)題
安裝conda
- 下載Anaconda3-5.2.0-Windows-x86_64.exe
- 把本地python環(huán)境變量清空,避免造成影響
- 安裝成功后輸入命令查看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
- 設(shè)置國(guó)內(nèi)環(huán)境變量
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
打開(kāi)C盤(pán)用戶(hù)目錄
C:\Users\Admin.condarc文件就能看到內(nèi)容
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 環(huán)境
- 在命令行中使用以下命令創(chuàng)建 conda 環(huán)境(如果使用 Windows壹罚,最好在命令行中以管理員身份執(zhí)行)
conda create -n tensorflow python=3.6
- 激活tensflow的環(huán)境
C:\Users\Admin>activate tensorflow
(tensorflow) C:\Users\Admin>
- 出現(xiàn)tensorflow就說(shuō)明已經(jīng)激活成功
- 檢測(cè)當(dāng)前環(huán)境中的python的版本:
python --version
(tensorflow) C:\Users\Admin>python --version
Python 3.6.13 :: Anaconda, Inc.
# 默認(rèn)用pip install tensorflow 出現(xiàn)超時(shí)
pip3 install --upgrade tensorflow --default-timeout=1000
- 如果還是無(wú)法成功,建議采用離線安裝的方式腕柜,就是下載好了依賴(lài)包济似,然后用
pip install XXX.whl
,我下載的為:tensorflow-2.4.1-cp36-cp36m-win_amd64.whl
- 導(dǎo)入tensorflow盏缤,先輸入python砰蠢,然后在導(dǎo)入
(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.
發(fā)現(xiàn)錯(cuò)誤,第一個(gè)錯(cuò)誤去下載cudart64_110.dll文件唉铜,然后放到
C:\Windows\System32
台舱,就可以解決第二個(gè)錯(cuò)誤是無(wú)法檢查到gpu,可以忽略
若想退出tensorflow的環(huán)境:
deactivate
(tensorflow) C:\Users\Admin>deactivate
C:\Users\Admin>
- 打開(kāi)
Anaconda Navigator
-
安裝spyder
- spyder一直失敗潭流,嘗試換成了國(guó)內(nèi)的源還是如此竞惋,參考這里
-
最終解決方案
-
conda config --remove-key channels
恢復(fù)默認(rèn)源 - 掛代理
-
- 安裝好spyder后,點(diǎn)擊啟動(dòng)輸入下面代碼
import tensorflow as tf
#查詢(xún)TensorFlow版本
print(tf.__version__)
#定義a和b為兩個(gè)常量
a = tf.constant([1, 2], name="a")
b = tf.constant([2, 3], name="b")
print(a)
print(b)
#隨機(jī)生成一個(gè)正態(tài)分布
output = tf.random.normal([5,3])
print(output)
#創(chuàng)建2個(gè)矩陣并進(jìn)行相乘
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())
- 展示結(jié)果
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框架使用的基本數(shù)據(jù)結(jié)構(gòu)灰嫉,張量即多維數(shù)組拆宛,在python中可以理解為嵌套的多維列表。張量的維度稱(chēng)為階讼撒,0階張量又稱(chēng)為標(biāo)量浑厚,1階張量又稱(chēng)為向量,2階張量又稱(chēng)為矩陣椿肩。
# 0階張量 標(biāo)量
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.]]]
關(guān)于tensorflow中的session
- 1.0版本用來(lái)運(yùn)算的瞻颂,2.0中已經(jīng)舍棄,參考【TensorFlow2.0】TensorFlow2.0與1.0對(duì)比
關(guān)于1郑象、2和3維數(shù)組解釋
- 把一個(gè)數(shù)當(dāng)作一個(gè)雞蛋贡这,那么一個(gè)int型的變量就是一個(gè)雞蛋,對(duì)吧厂榛。
現(xiàn)在建立一個(gè)一維數(shù)組int[5]:這個(gè)就相當(dāng)于在你面前放了一排5個(gè)雞蛋盖矫,這里也沒(méi)問(wèn)題吧。 - 接下來(lái)到二維數(shù)組int[3][4]:首先击奶,由二維數(shù)組的第二維[4]我們可以確定一排是4個(gè)雞蛋辈双,這個(gè)跟剛才的一維數(shù)組一樣。那么之前的[3]是什么呢柜砾?那就是一共有幾排了湃望!于是int[3][4]相當(dāng)于在你面前放了3排的雞蛋,一排4個(gè)~
- 再到三維數(shù)組int[3][4][5]:第三維的[5]就是之前一位數(shù)組里的一排5個(gè)雞蛋,第二維的[4]就是一共有4排证芭。那么這個(gè)[3]呢瞳浦?那就是如果把這4排每排5個(gè)的雞蛋看成一個(gè)小組,即4*5=20個(gè)雞蛋是一個(gè)組废士,在你面前就放著3組的雞蛋~
不知道明白了沒(méi)有叫潦? - 來(lái)自于這里 三維組和二維數(shù)組的區(qū)別