every blog every motto:light tomorrow with today.
作為深度學習的萌新可能都知道,訓練以後的引數儲存成h5格式檔案。那有時候看到訓練資料也是h5格式又是為什麼呢?
當訓練大量資料()時,如果從硬碟載入並預處理,然後傳遞進網路,這可能是乙個非常耗時的過程。
其中從硬碟讀取會花費大量時間,更可行的方法是將其存在在單個檔案中,如hdf5和tfrecord。
其中tfrecord可以參考文章1、文章2等
如果是普通,可直接利用下方**。
from pil import image
img = image.open(
'./1.png'
)img_array = np.array(img)
如果是一張大的遙感影像,
遙感影像轉陣列,點我點我
說明:不以具體資料說明,僅用少量資料進行展示
import numpy as np
import h5py
file_path =
'./1.h5'
patches = np.zeros(
(250
,128
,128,3
))patches_y = np.zeros(
250)
寫入檔案
with h5py.file(file_path,
'w')
as f:
f['x']
= patches
f['y']
= patches_y
讀取檔案
說明:讀取時如果用with ,讀取到的資料要在with 內,否組容易出錯,具體見附錄
f = h5py.file(file_path,
'r')
print
(f.keys())
print
(f['x'
].shape)
print
(f['y'
].shape)
f.close(
)
下方列印在with 外面,報錯。
# 讀取檔案
with h5py.file(
't.h5'
,'r'
)as f:
x_train = f[
'x']
y_train = f[
'y']
print
(y_train.shape)
第一次寫入
import h5py
import numpy as np
array = np.zeros(
250)
arr = np.ones(10)
path =
'./dataset/w.h5'
# f = h5py.file(path, 'a')
# f['x'] = array
# f.close()
新增新資料
# f = h5py.file(path, 'a')
# f['y'] = arr
# f.close()
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
h5檔案初識
h5檔案中有兩個核心的概念 組 group 和資料集 dataset 乙個h5檔案就是 dataset 和 group 二合一的容器。dataset 簡單來講類似陣列組織形式的資料集合,像 numpy 陣列一樣工作,乙個dataset即乙個numpy.ndarray np.array只是乙個便捷的函...
h5檔案簡介
h5檔案是層次格式的第5代版本,用於儲存科學資料的一種檔案格式和庫檔案,由美國超級計算中心與應用中心研發的檔案格式,用以儲存和組織大規模資料.h5將檔案結構簡化成兩個主要的物件型別 1 資料集dataset,就是同一型別資料的多維陣列 2 組group,是一種容器結構,可以包含資料集和其他組,若乙個...
生成H5檔案記錄
首先理解h5py這個東西,網上專業說明很多。這裡不贅述,個人理解 h5py是乙個大盒子,下面 是新建這個盒子 target path是h5檔案存放路徑 dataset h5py.file os.path join target path,data.h5 w 有了空盒子以後,我們給它再來進行分割槽。乙...