真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

TensorFlow通過文件名/文件夾名獲取標(biāo)簽,并加入隊(duì)列的實(shí)現(xiàn)-創(chuàng)新互聯(lián)

TensorFlow官網(wǎng)給的cifar-10教程,是卷積神經(jīng)網(wǎng)絡(luò)入門的好例子,有時(shí)想直接拿這個(gè)模型來跑自己的數(shù)據(jù),卻發(fā)現(xiàn)他的數(shù)據(jù)類型不是常見的,我們一般獲取的數(shù)據(jù)(圖片)以文件夾分類存好,或者直接在文件名上注明了類別,這時(shí)就要通過文件名的來獲取標(biāo)簽,顯然直接用cifar-10的方式是不行的。

屏邊網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

這里當(dāng)然可以吧數(shù)據(jù)轉(zhuǎn)化成cifar-10那種類型,不過個(gè)人不喜歡這種方式吧。

另一種就還是老辦法,對(duì)文件名進(jìn)行處理,獲取標(biāo)簽。

其實(shí)處理文件名,對(duì)python來說,很簡(jiǎn)單。只是剛接觸卷積神經(jīng)網(wǎng)絡(luò)的,可能并不熟悉TensorFlow的用法(本人),怎么修改代碼才能以這種方式讀取數(shù)據(jù)進(jìn)隊(duì)列呢?

看代碼:


import tensorflow as tf
import os

#這就是數(shù)據(jù)所在的路徑,其子目錄是若干個(gè)文件夾,分別對(duì)應(yīng)一類數(shù)據(jù),
#文件夾下存放的就是對(duì)應(yīng)那一類的數(shù)據(jù)。
#命名方式:1,2,3,4····(代表不同的類別,簡(jiǎn)單粗暴)
path="./data"

classes=2#數(shù)據(jù)類別的數(shù)量
imagesList=[]#存放圖片數(shù)據(jù)的列表(這里存放的僅僅是圖片所在的路徑,并不是圖片)
labelsList=[]#存放標(biāo)簽,與上面圖片是一一對(duì)應(yīng)的
filepaths=[os.path.join(path,"%d"%i)for i in range (1,classes+1)]#存放path的子目錄的路徑
for p in filepaths:
 for filename in os.listdir(p):#獲取圖片的名字
  imagesList.append(os.path.join(p,filename))#圖片名和路徑拼接,然后如隊(duì)列
  labelsList.append(int(p[-1]))#這里是按照命名的方式,p的最后一個(gè)字符就是類別

image = tf.cast(imagesList,tf.string)#轉(zhuǎn)化成tf的數(shù)據(jù)類型
label = tf.cast(labelsList,tf.int64)
queue = tf.train.slice_input_producer([image,label])#生成隊(duì)列,這里也就關(guān)鍵的地方
label = queue[1]
image_c = tf.read_file(queue[0])
image = tf.image.decode_jpeg(image_c,channels = 3)
training_image_data = tf.image.resize_images(image, [2, 2]) #這個(gè)函數(shù)是重塑行,具體干嘛不清楚,不用有時(shí)報(bào)錯(cuò)
example_batch, label_batch = tf.train.shuffle_batch([training_image_data,label], batch_size=1, capacity=2, min_after_dequeue=1) #生成Batch
# 運(yùn)行Graph 
with tf.Session() as sess: 
 coord = tf.train.Coordinator() #創(chuàng)建一個(gè)協(xié)調(diào)器,管理線程 
 threads = tf.train.start_queue_runners(coord=coord) #啟動(dòng)QueueRunner, 此時(shí)文件名隊(duì)列已經(jīng)進(jìn)隊(duì)。 
 for i in range(6): 
  e_val,l_val = sess.run([example_batch, label_batch]) 
  print (e_val,l_val)#弄些簡(jiǎn)單的數(shù)據(jù)來測(cè)試效果。

 coord.request_stop() 
 coord.join(threads) 

新聞名稱:TensorFlow通過文件名/文件夾名獲取標(biāo)簽,并加入隊(duì)列的實(shí)現(xiàn)-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/decsge.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部