# -*- 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其實不用做 混淆,應該是蘋果幫我們做了,反編譯以後只...