Tensorflow 訓練自己的數(shù)據(jù)集將數(shù)據(jù)直接導入到內(nèi)存
制作自己的訓練集
下圖是我們數(shù)據(jù)的存放格式,在data目錄下有驗證集與測試集分別對應iris_test, iris_train
為了向偉大的MNIST致敬,我們采用的數(shù)據(jù)名稱格式和MNIST類似
classification_index.jpg
圖像的index都是5的整數(shù)倍是因為我們選擇測試集的原則是每5個樣本,選擇一個樣本作為測試集,其余的作為訓練集和驗證集
生成這樣數(shù)據(jù)的過程相對簡單,如果有需要python代碼的,可以給我發(fā)郵件,或者在我的github下載
至此,我們的訓練集,測試集,驗證集就生成成功了,之所以我們的文件夾只有訓練集和測試集是因為我們在后續(xù)的訓練過程中,會在訓練集中分出一部分作為驗證集,所以兩者暫時合稱為訓練集
將數(shù)據(jù)集寫入到Tensorflow中
1. 直接寫入到隊列中
import tensorflow as tf import numpy as np import os train_dir = '/home/ruyiwei/data/iris_train/'#your data directory def get_files(file_dir): ''' Args: file_dir: file directory Returns: list of images and labels ''' iris = [] label_iris = [] contact = [] label_contact = [] for file in os.listdir(file_dir): name = file.split('_') if name[0]=="iris": iris.append(file_dir + file) label_iris.append(0) else: contact.append(file_dir + file) label_contact.append(1) print('There are %d iris\nThere are %d contact' %(len(iris), len(contact))) image_list = np.hstack((iris, contact)) label_list = np.hstack((label_iris, label_contact)) temp = np.array([image_list, label_list]) temp = temp.transpose() np.random.shuffle(temp) image_list = list(temp[:, 0]) label_list = list(temp[:, 1]) label_list = [int(i) for i in label_list] return image_list, label_list
為了大家更方便的理解和修改代碼,我們對代碼進行講解如下
1-3行 : 導入需要的模塊
5行: 定義訓練集合的位置,這個需要根據(jù)自己的機器進行修改
7行: 定義函數(shù) get_files
18行: os.listdir(file_dir) 獲取指定目錄file_dir下的所有文件名詞,也就是我們的訓練圖片名稱
18行:for file in os.listdir(file_dir): 遍歷所有的圖片
19行: name為一個數(shù)組,由于我們根據(jù)MINIST來定制的圖片名詞,所以file.split(‘_')會將圖像名稱分為兩部分,第一部分為classification,通過name[0]來獲得分類信息。
21行、24行:iris.append(file_dir + file)/contact.append(file_dir + file)將圖像的絕對路徑放入到iris/contact中
22行、25行:label_iris.append(0)/label_contact.append(1)給對應的圖片貼標簽
28-29行:將二分類的圖像與標簽壓入到list中
31-33行:合并二分類圖像,然后打亂
38行:返回打亂后對應的圖像與標簽
在spyder下執(zhí)行如上代碼后會返回如下信息
這樣圖像和標簽信息就被load到了內(nèi)存中,我們接下來就可以利用現(xiàn)有的模型對圖像進行分類訓練,模型的選擇和訓練的過程,我們會在后面進行講解。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 基于Tensorflow讀取MNIST數(shù)據(jù)集時網(wǎng)絡超時的解決方式
- tensorflow實現(xiàn)殘差網(wǎng)絡方式(mnist數(shù)據(jù)集)
- 使用tensorflow實現(xiàn)VGG網(wǎng)絡,訓練mnist數(shù)據(jù)集方式
- TensorFlow2.X使用圖片制作簡單的數(shù)據(jù)集訓練模型
- C#使用TensorFlow.NET訓練自己的數(shù)據(jù)集的方法
- TensorFlow車牌識別完整版代碼(含車牌數(shù)據(jù)集)
- TensorFlow基于MNIST數(shù)據(jù)集實現(xiàn)車牌識別(初步演示版)
- 詳解如何從TensorFlow的mnist數(shù)據(jù)集導出手寫體數(shù)字圖片
- tensorflow實現(xiàn)加載mnist數(shù)據(jù)集
- 詳解tensorflow訓練自己的數(shù)據(jù)集實現(xiàn)CNN圖像分類
- Tensorflow之構建自己的圖片數(shù)據(jù)集TFrecords的方法
- 如何從csv文件構建Tensorflow的數(shù)據(jù)集
相關文章
基于Python實現(xiàn)面向對象版學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了如何利用python實現(xiàn)學生管理系統(tǒng)(面向對象版),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07python Autopep8實現(xiàn)按PEP8風格自動排版Python代碼
這篇文章主要介紹了python Autopep8實現(xiàn)按PEP8風格自動排版Python代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03