H5 h5檔案之 深度學習訓練樣本製作

2021-10-07 16:09:21 字數 1912 閱讀 8578

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 有了空盒子以後,我們給它再來進行分割槽。乙...