機械学習フレームワークDeeplearning4j(DL4J)におけるデータの準備と前処理の中でも、「CSV」「画像」「時系列データ」の読み込みは、モデルの訓練に向けた重要なステップです。DL4Jでは、これらの処理にDataVecライブラリが用いられます。以下、それぞれのデータ形式ごとに詳しく解説します。
1. CSVデータの読み込み
CSVファイルは、数値やカテゴリデータなどの構造化データを扱う際によく使われます。
主なクラスと手順
-
RecordReader(例:CSVRecordReader) -
DataSetIterator(例:RecordReaderDataSetIterator)
コード例
注意点
-
ラベルの位置やクラス数は明示的に指定する必要があります。
-
正規化が必要な場合は、
NormalizerStandardizeなどで正規化を追加します。
2. 画像データの読み込み
DL4Jでは、画像分類タスクに対応するための専用クラスが用意されています。
主なクラスと手順
-
NativeImageLoader -
ParentPathLabelGenerator -
ImageRecordReader -
RecordReaderDataSetIterator
コード例
注意点
-
画像サイズやチャンネル数(グレースケール or RGB)を指定する必要があります。
-
パス名を使ったラベル付け(ディレクトリ名=ラベル)が一般的です。
3. 時系列データの読み込み
時系列データ(例:株価、センサー値など)では、系列データとしての整形が必要です。
主なクラスと手順
-
CSVSequenceRecordReader -
SequenceRecordReaderDataSetIterator
コード例
注意点
-
入力とラベルは同じ長さの時系列である必要があります。
-
ファイル名に連番が必要(
features_0.csvなど)。
補足:正規化の適用
すべての形式において、入力データのスケーリングが重要です。以下は代表的な正規化手法です。
まとめ
| データ形式 | 使用クラス | 特徴 |
|---|---|---|
| CSV | CSVRecordReader, RecordReaderDataSetIterator |
数値・カテゴリデータに適用しやすい |
| 画像 | ImageRecordReader, NativeImageLoader |
ディレクトリ構造によるラベリング |
| 時系列 | CSVSequenceRecordReader, SequenceRecordReaderDataSetIterator |
シーケンス長の管理が重要 |
これらの前処理を通じて、DL4Jで効率的に学習可能な形式へとデータを変換することが可能になります。必要に応じて、DataVecを活用したカスタム変換も実装できます。
生成日:2025/05/23