Tensorflow 二進位制檔案讀取分析

2021-10-03 13:21:08 字數 2350 閱讀 9575

的儲存,計算型別

儲存:uint8(節約空間)

矩陣計算:float32(提高精度)

二進位制檔案讀取

cifar-10(比賽資料)二進位制資料讀取

import  tensorflow as tf

import os

# 定義cifar的資料等命令列引數

'cifar_dir'

,'./狗/'

,"檔案的目錄"

)class

cifarread

(object):

"""完成讀取二進位制檔案,寫進tfrecords,讀取tfrecords"""

def__init__

(self,filelist)

:#檔案列表

self.file_list=filelist

#定義讀取的一些屬性

self.height=

32 self.weight=

32 self.channel=

3#二進位制檔案的每張的位元組

self.label_bytes=

1 self.image_bytes=self.weight * self.height *self.channel

self.

bytes

=self.label_bytes+self.image_bytes

defread_and_decode

(self)

:#1.構造檔案佇列

file_queue=tf.train.string_input_producer(self.file_list)

#2.構造二進位制檔案讀取器,讀取內容,每個樣本的位元組數

reader=tf.fixedlengthrecordreader(self.

bytes

) key,value=reader.read(file_queue)

#3.解碼內容,二進位制檔案解碼

label_image=tf.decode_raw(value,tf.uint8)

print

(label_image)

#4.分割出和標籤資料,切出特徵值和目標值

label=tf.

slice

(label_image,[0

],[self.label_bytes]

,tf.int32)

image=tf.

slice

(label_image,

[self.label_bytes]

,[self.image_bytes]

)#5.可以對的特徵資料進行形狀的改變

image_reshape=tf.reshape(image,

[self.height,self.weight,self.channel]

)#6.批處理資料

image_batch,label_batch=tf.train.batch(

[image_reshape,label]

,batch_size=

10,num_threads=

1,capacity=10)

return image_batch,label_batch

if __name__ ==

'__main__'

:#1.找到檔案,放入列表

file_name=os.listdir(flags.cifar_dir)

filelist=

[os.path.join(flags.cifar_dir,

file

)for

file

in file_name if

file[-

3:]==

"bin"

] cf=cifarread(filelist)

image_batch,label_batch=cf.read_and_decode(

)#開啟會話

with tf.session(

)as sess:

#定義乙個執行緒協調器

coord=tf.train.coordinator(

)#開啟讀取檔案的執行緒

threads=tf.train.start_queue_runners(sess,coord=coord)

# 列印讀取內容

print

(sess.run(

[image_batch,label_batch]))

# **子執行緒

coord.request_stop(

) coord.join(threads)

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...

mysql二進位制 MySql二進位制連線方式詳解

使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命令提示視窗,你可以...