h5py を使用して、数値作業の中間データを HDF5 ファイルに保存しています。プロジェクトをバージョン管理していますが、HDF5 ファイルを生成するスクリプトを再実行するたびに、内部のデータが変更されなくてもバイナリ ファイルが変更されるため、これは HDF5 ファイルではうまく機能しません。
これを説明するための小さな例を次に示します。
In [1]: import h5py, numpy as np
In [2]: A = np.arange(5)
In [3]: f = h5py.File('test.h5', 'w'); f['A'] = A; f.close()
In [4]: !md5sum test.h5
7d27c258d94ed5d06736f6d2ba7c9433 test.h5
In [5]: f = h5py.File('test.h5', 'w'); f['A'] = A; f.close()
In [6]: !md5sum test.h5
c1db5806f1393f2095c88dbb7efeb7d3 test.h5
In [7]: # the file has changed but still contains the same data!
HDF5 ファイル形式のドキュメントと h5py のドキュメントを調べましたが、これに役立つものは見つかりませんでした。私の質問は次のとおりです。
同じデータを保存しているのに、ファイルが変更されるのはなぜですか?
実際の数値コンテンツが変更されたときにのみバージョン管理がファイルの新しいバージョンを認識できるように、変更を停止するにはどうすればよいですか?
ありがとう