mnist 提取目錄格式和指令碼

2022-09-13 08:39:11 字數 2203 閱讀 6348

# -*- coding: utf-8 -*-

from pil import image

import struct

import time

import os

for path_num_pic_in in

('mnist/test/'

,'mnist/train/'):

for num_dir in

range(10

):if os.path.exists(path_num_pic_in+

str(num_dir)):

print

('資料夾已經存在'

)else

: os.makedirs(path_num_pic_in+

str(num_dir)

)#生成10個以數字命名的資料夾

defextract_s**e_mnist

(filename_pics,filename_labels, path_num_pic_in)

: index =

0 index2 =

0with

open

(filename_pics,

'rb'

)as f:

buf=f.read(

)with

open

(filename_labels,

'rb'

)as f2:

buf2=f2.read(

) magic, labels = struct.unpack_from(

'>ii'

, buf , index)

#讀出有多少個標籤,為以後迴圈定量。

index2 += struct.calcsize(

'>ii'

)#索引跟隨

magic, images, rows, columns = struct.unpack_from(

'>iiii'

, buf , index)

index += struct.calcsize(

'>iiii'

)for i in

range

(labels)

: image = image.new(

'l',

(columns, rows)

)for x in

range

(rows)

:## 把一維的資料賦值到二維中,每次讀取乙個byte,付給乙個畫素值 struct函式解碼的應該是列表形式所以用[0]提取)

for y in

range

(columns)

: image.putpixel(

(y, x)

,int

(struct.unpack_from(

'>b'

, buf, index)[0

])) index += struct.calcsize(

'>b'

)#索引計數用的,主要方便記錄讀取到哪乙個資料值了。

label_num= struct.unpack_from(

'>b'

, buf2, index2)[0

]##這個本身就是int型別的了,就沒必要加int()了。

index2 += struct.calcsize(

'>b'

)#索引跟隨

image.s**e(path_num_pic_in+

str(label_num)

+'/'

+str

(label_num)

+'_'

+str

(time.time())

+'.png'

)if __name__ ==

'__main__'

: extract_s**e_mnist(r'train-images.idx3-ubyte'

,r'train-labels.idx1-ubyte'

,'mnist/train/'

) extract_s**e_mnist(r't10k-images.idx3-ubyte'

,r't10k-labels.idx1-ubyte'

,'mnist/test/'

)

關於MNIST資料格式和matlab讀取問題

剛剛加入csdn,獻上自己關於mnist的理解和簡單地操作 因為一些格式的問題,matlab不識別這種檔案,所以我自己用二進位制檔案閱覽器檢視之後,重新生成了二進位制檔案,在此過程中,只是變換了檔案格式,沒有破壞原始資料。稍後我會穿上新的訓練樣本和測試樣本。mnist一共有四個檔案 1.train ...

mysql date 格式的提取和轉換

0 先理解下格式問題 要理解兩種格式,一是mysql內部使用和儲存時使用的格式,另乙個是使用者顯示的格式 儲存格式 mysql儲存日期時間值時使用的ccyy mm dd格式遵循iso 8601標準 顯示格式 顯示在輸出介面上的格式,可以使用data format 或time format 函式來設定...

提取Unity遊戲資源和指令碼

直接預覽 檢視場景樹狀結構 檢視shader 檢視文字內容 1.unity編譯後最終會將 編譯在dll裡面,無論是ios還是android解開包以後都可以拿到dll,路徑在data managed assembly csharp.dll 2.ios其實不用做 混淆,應該是蘋果幫我們做了,反編譯以後只...