tensorflow 2.1.0 安裝與實戰教程(CASIA FACE v5)
1.0tensorflow的安裝
1.1安裝python
python下載 需要python3.x<=3.7
https://www.python.org/ftp/python/3.7.7/python-3.7.7-amd64.exe
安裝時勾選Add Python 3.7 to PATH,把python新增到環境變數。
1.2安裝tensorflow
開啟命令列,執行
pip install tensorflow==2.1.0
pip 會安裝tensorflow和一些其他的依賴
1.3安裝vc++2015-2019redist…
tensorflow的另一個依賴(很多tensorflow安裝失敗的原因就是這個沒安裝)
1.4安裝CUDA和CUDNN
cuda: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
cudnn: https://developer.nvidia.com/rdp/cudnn-download(需要註冊nvidia賬號)
高版本CUDA缺失cudart64_101.dll,下載後放在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin裡
https://cn.dll-files.com/cudart64_101.dll.html
2.0CASIA實戰
2.1CASIA資料集
可以從網上下載casia資料集,
這裡以casia資料集為例,現實中可以使用自己需要的資料集。
2.2資料集的處理
建立data和test兩個資料夾,把casia複製到裡面
目錄是這樣的./data/000/000_0.bmp
data.py處理資料,其實就是遍歷,匹配,刪除
import os data = './data' dirs = os.listdir(data) for dir in dirs: for file in os.listdir(data + '/' + dir): if file.endswith("4.bmp"): os.remove(data + '/' + dir + '/' + file) test = './test' tdirs = os.listdir(test) for dir in tdirs: for file in os.listdir(test + '/' + dir): if file.endswith("0.bmp"): os.remove(test + '/' + dir + '/' + file) if file.endswith("1.bmp"): os.remove(test + '/' + dir + '/' + file) if file.endswith("2.bmp"): os.remove(test + '/' + dir + '/' + file) if file.endswith("3.bmp"): os.remove(test + '/' + dir + '/' + file)
2.3訓練程式碼
casia.py
import os import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense,Conv2D,Flatten,Dropout,MaxPooling2D from tensorflow.keras.preprocessing.image import ImageDataGenerator import numpy as np /*我直接建立了個0000,1111,...這樣的陣列作為標籤*/ #data標籤 arr = [] for i in range(100): for j in range(4): arr.append(i) arr = np.array(arr) #test標籤 tarr = [] for i in range(100): tarr.append(i) tarr = np.array(tarr) #訓練集 pwd='./data' dirs = os.listdir(pwd) imgs = [] for dir in dirs: for file in os.listdir(pwd + '/' + dir): image = tf.io.read_file(pwd + '/' + dir + '/' + file) img = tf.image.decode_bmp(image,channels=3) imgs.append(img) print("[*]訓練集載入完畢") print(imgs[0].shape) #驗證集(測試集) tpwd='./test' tdirs = os.listdir(tpwd) timgs = [] for tdir in tdirs: for tfile in os.listdir(tpwd + '/' + tdir): timage = tf.io.read_file(tpwd + '/' + tdir + '/' + tfile) timg = tf.image.decode_bmp(timage,channels=3) timgs.append(timg) print("[*]驗證集載入完畢") print(timgs[0].shape) #神經網路模型 model = Sequential([ Conv2D(16,(3,3),padding='same',activation='relu',input_shape=(480,640,3)),MaxPooling2D(),Conv2D(64,activation='relu'),Conv2D(128,Flatten(),Dense(128,Dense(100,activation='softmax'),]) model.summary()//列印神經網路模型 #優化器 model.compile(optimizer=tf.keras.optimizers.Adam(),loss='sparse_categorical_crossentropy',metrics=['accuracy']) #訓練 ds = tf.data.Dataset.from_tensor_slices((imgs,arr)) ds = ds.batch(16) ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE) model.fit(ds,epochs=20) tds = tf.data.Dataset.from_tensor_slices((timgs,tarr)) tds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE) model.evaluate(tds,verbose=2) #儲存 tf.saved_model.save(model,"./tmp/")
2.4訓練與驗證
在命令列執行 python casia.py進行訓練
predict.py
import os import tensorflow as tf import numpy as np /*這裡顯示卡記憶體不夠了*/ from tensorflow.compat.v1 import ConfigProto from tensorflow.compat.v1 import InteractiveSession config = ConfigProto() config.gpu_options.allow_growth = True session = InteractiveSession(config=config) /*顯示卡記憶體*/ model_path = './tmp' //載入模型 test_path = "./test/002/002_4.bmp"//這裡就是個栗子 model = tf.keras.models.load_model(model_path,custom_objects=None,compile=True) image = tf.io.read_file(test_path) img = tf.image.decode_bmp(image,channels=3) img = img[tf.newaxis,...] res = model.predict( img,batch_size=None,verbose=0,steps=None,callbacks=None,max_queue_size=10,workers=1,use_multiprocessing=False ) pred = tf.argmax(res,axis=1) print (pred[0]) print (res[0,pred[0]])
總結
到此這篇關於tensorflow 2.1.0 安裝與實戰(CASIA FACE v5)的文章就介紹到這了,更多相關tensorflow 2.1.0 安裝內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!