TensorFlow2.X使用圖片制作簡(jiǎn)單的數(shù)據(jù)集訓(xùn)練模型
Tensorflow內(nèi)置了許多數(shù)據(jù)集,但是實(shí)際自己應(yīng)用的時(shí)候還是需要使用自己的數(shù)據(jù)集,這里TensorFlow 官網(wǎng)也給介紹文檔,官方文檔。這里對(duì)整個(gè)流程做一個(gè)總結(jié)(以手勢(shì)識(shí)別的數(shù)據(jù)集為例)。
1、 收集手勢(shì)圖片
方法多種多樣了。我通過攝像頭自己采集了一些手勢(shì)圖片。保存成如下形式,

以同樣的形式在建立一個(gè)測(cè)試集,當(dāng)然也可以不弄,在程序里處理。
2、構(gòu)建數(shù)據(jù)集
導(dǎo)入相關(guān)的包
import tensorflow as tf from tensorflow import keras from tensorflow.keras import datasets, layers, optimizers, Sequential, metrics from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2 import os import pathlib import random import matplotlib.pyplot as plt
讀取文件
data_root = pathlib.Path('D:\code\PYTHON\gesture_recognition\Dataset')
print(data_root)
for item in data_root.iterdir():
print(item)

讀取圖片路徑到list中
all_image_paths = list(data_root.glob('*/*'))
all_image_paths = [str(path) for path in all_image_paths]
random.shuffle(all_image_paths)
image_count = len(all_image_paths)
print(image_count) ##統(tǒng)計(jì)共有多少圖片
for i in range(10):
print(all_image_paths[i])

label_names = sorted(item.name for item in data_root.glob('*/') if item.is_dir())
print(label_names) #其實(shí)就是文件夾的名字
label_to_index = dict((name, index) for index, name in enumerate(label_names))
print(label_to_index)
all_image_labels = [label_to_index[pathlib.Path(path).parent.name]
for path in all_image_paths]
print("First 10 labels indices: ", all_image_labels[:10])

預(yù)處理
def preprocess_image(image): image = tf.image.decode_jpeg(image, channels=3) image = tf.image.resize(image, [100, 100]) image /= 255.0 # normalize to [0,1] range # image = tf.reshape(image,[100*100*3]) return image def load_and_preprocess_image(path,label): image = tf.io.read_file(path) return preprocess_image(image),label
構(gòu)建一個(gè) tf.data.Dataset
ds = tf.data.Dataset.from_tensor_slices((all_image_paths, all_image_labels)) train_data = ds.map(load_and_preprocess_image).batch(16)
同樣的方式在制作一個(gè)測(cè)試集,就可以用于模型訓(xùn)練和測(cè)試了。
總結(jié)
到此這篇關(guān)于TensorFlow2.X使用圖片制作簡(jiǎn)單的數(shù)據(jù)集訓(xùn)練模型的文章就介紹到這了,更多相關(guān)TensorFlow數(shù)據(jù)集訓(xùn)練模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解
這篇文章主要介紹了VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
編寫Python腳本抓取網(wǎng)絡(luò)小說來制作自己的閱讀器
這篇文章主要介紹了編寫Python腳本抓取網(wǎng)絡(luò)小說來制作自己的閱讀器的方法,包括對(duì)小說的章節(jié)排列等方面的優(yōu)化,對(duì)于Python學(xué)習(xí)者來說非常具有實(shí)踐意義!需要的朋友可以參考下2015-08-08
卡爾曼濾波數(shù)據(jù)處理技巧通俗理解及python實(shí)現(xiàn)
這篇文章主要為大家介紹了卡爾曼濾波數(shù)據(jù)處理技巧的通俗理解及python實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python學(xué)習(xí)之Anaconda的使用與配置方法
我在學(xué)習(xí)Python的爬蟲框架中看到看到了anaconda的介紹,簡(jiǎn)直是相見恨晚啊,我覺的每個(gè)Python的學(xué)習(xí)網(wǎng)站上首先都應(yīng)該使用anaconda來進(jìn)行教程,因?yàn)樵趯?shí)踐的過程中光環(huán)境的各種報(bào)錯(cuò)就能消磨掉你所有的學(xué)習(xí)興趣2018-01-01
十行Python3代碼實(shí)現(xiàn)去除pdf文件水印
pfd文檔一般無法直接去除水印,需要先將pfd文檔轉(zhuǎn)換成圖片,在逐一對(duì)圖片進(jìn)行水印去除操作,最后在把圖片插入到pdf文檔中,這樣就很繁瑣。本文將用十行Python3代碼輕輕松松實(shí)現(xiàn)PDF文件水印去除,快來了解一下吧2022-02-02
Numpy實(shí)現(xiàn)矩陣運(yùn)算及線性代數(shù)應(yīng)用
這篇文章主要介紹了Numpy實(shí)現(xiàn)矩陣運(yùn)算及線性代數(shù)應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
python格式化字符串的實(shí)戰(zhàn)教程(使用占位符、format方法)
我們經(jīng)常會(huì)用到%-formatting和str.format()來格式化,下面這篇文章主要給大家介紹了關(guān)于python格式化字符串的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
python利用腳本輕松實(shí)現(xiàn)ssh免密登陸配置
這篇文章主要為大家詳細(xì)介紹了python如何利用腳本輕松實(shí)現(xiàn)ssh免密登陸配置,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

