H5 ファイル形式とは?
.h5ファイル拡張子は、HDF Groupによって開発され、1998年にイリノイ大学の国立スーパーコンピュータ応用研究所(NCSA)で最初に作成されたバイナリ科学データコンテナであるHDF5(Hierarchical Data Format version 5)ファイルを表します。HDF5は、膨大な多次元データセットを豊富なメタデータと共に保存するために設計された、自己記述型の階層型フォーマットです。
内部的には、.h5ファイルは名前付きグループ(ディレクトリに類似)とデータセット(N次元の型付き配列)のツリーとして構成されています。すべてのデータセットは、独自のデータ型、次元、バイト順序、および圧縮設定を記録します。データセットは、GZIP、SZIP、Blosc、またはZstandardを使用してチャンク単位でオプションで圧縮でき、テラバイト規模のデータでも効率的な保存が可能です。各ファイルおよびオブジェクトには、追加のメタデータとして名前付き属性を持たせることができます。
主な用途は以下の通りです:
- 地球科学、物理学、バイオインフォマティクス、航空宇宙分野における大規模な科学データセット(NASA、NOAA、ESA、CERNはすべてHDF5を利用しています)。
- KerasおよびTensorFlowのニューラルネットワークの重みとモデル構造の保存。
- NetCDF-4ファイルの基盤となるストレージ層の提供。
すべてのHDF5ファイルは、マジックシグネチャ \x89HDF\r\n\x1a\n(8バイト、通常はオフセット0)で始まります。このフォーマットは、リトルエンディアンとビッグエンディアンの両方のバイト順序をサポートしており、スーパーブロック内でファイルごとに宣言されます。HDF5ファイルは、Pythonのh5pyライブラリ、MATLAB、公式HDF5ツールセットのh5dumpコマンドラインユーティリティ、およびHDFView GUIで読み取ることができます。
.h5と.hdf5の拡張子は互換性があり、どちらも有効なHDF5ファイルを識別し、すべてのHDF5対応ソフトウェアによって同一に扱われます。
セキュリティと安全性
リスク: LOWHDF5は実行コードを含まないパッシブなバイナリデータコンテナです。開いても安全です。非常に大きなデータセットをすべてRAMに読み込むとメモリの問題が発生する可能性があるため、h5pyのレイジーロード(f[«/dataset»][::])を使用して大きな配列をスライスしてください。不正な形式のHDF5ファイルは、古いバージョンのlibhdf5のライブラリバグを引き起こす可能性があるため、ライブラリを最新の状態に保ってください。
形式の詳細
概要- Keras/TensorFlow ニューラルネットワークモデル - Kerasは訓練済みのモデルの重みとアーキテクチャをHDF5を使用して.h5に保存します。これは同じフォーマットであり、異なるものではありません。
- NetCDF-4 気候/海洋学データ - NetCDF-4ファイル(.nc, .nc4)は、追加のNetCDF規約を備えたHDF5ファイルです。誤って.h5として保存されることもあります。
H5 ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナフォーマット | HDF5 階層型グループ/データセット/属性コンテナ |
| マジックバイト | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; オフセット0の8バイト(512/1024/2048オフセットに現れる場合もあります) |
| バイト順序 | リトルエンディアンまたはビッグエンディアン(スーパーブロック内でファイルごとに宣言) |
| エンコーディング | バイナリ |
| MIMEタイプ | application/x-hdf5 |
| 圧縮 | データセットごとのオプションのフィルタパイプライン:GZIP, SZIP, LZF, Blosc, Zstandard, またはなし |
| チェックサム | チャンクごとのFletcher32(オプション、データセットごと); v2/v3のスーパーブロックチェックサム |
| スーパーブロックバージョン | 0-3; v2/v3ではコンパクトレイアウトとファイルスペース管理が追加 |
| 最大データセット次元 | 32次元; 1次元あたり最大2^64要素 |
| チャンキング | データセットを固定サイズのチャンクに分割でき、チャンクごとの圧縮、ランダムアクセス、および動的な拡張が可能です |
| 典型的なファイルサイズ | 100 KB - 100 GB以上(Keras/TensorFlowのモデルの重みは通常1-500 MB) |
| 自己記述型 | 各データセットは、独自の型、次元、バイト順序、圧縮、および名前付き属性を保存します |
| 後方互換性 | 新しいバージョンのHDF5ライブラリは、すべての古いHDF5ファイルを読み取ることができます |
| プラットフォーム | Linux, Windows, macOS, HPCクラスター(すべてのPOSIX OS) |
| リリース日 | 1998 (HDF5 1.0 release by NCSA) |
| 最新バージョン | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | support.hdfgroup.org |
H5 の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。H5 ファイルについて最初の質問をしてみましょう。