は私がmxnetモデル(基本的なフィードフォワード多層Perecptron)への入力としてこれを使用したいと思い、このmxnetで複数のデータ型を使用して入力を作成する方法は?
0.00,2015-10-21,1,Y,798.78,323793701,6684,0.00,Q,H2512,PE0,1,0000
のように見えるのエントリを持つデータファイルがあるとします。単一の入力レコードが
float,date,int,categorical,float,int,int,float,categorical,categorical,categorical,int, float
上記順ショーの各レコードは、特定のエンティティの意味の表現であり、データ・タイプを有します。この種のデータをmxnetにどのように表しますか?また、物事を少し複雑にするために、私は、カテゴリの列をワンホットエンコードすると思いますか?そして、各レコードにこれらのフィールドが表示されている順序で表示されている場合、各レコードの長さが異なるような場合は複数回繰り返されますか?
ドキュメントは、同じタイプのすべての入力データがあり、すべて同じデータを同じ入力に読み込むことができますが、このケースを処理する基本的なケースには最適です。
更新:いくつか追加の詳細を追加します。できるだけシンプルにするために、単純なネットワークにこれを供給したいとしましょう。データの単純なケースで
my $data = mx->symbol->Variable("data");
my $fc = mx->symbol->FullyConnected($data, num_hidden => 1);
my $softmax=mx->symbol->SoftmaxOutput(data => $fc, name => "softmax");
my $module = mx->mod->new(symbol => $softmax);
すべての一種であることと、前処理の方法で多くを必要としない私は、ちょうど
$module->fit(
$train_iter,
eval_data => $eval_iter,
optimizer => "adam",
optimizer_params=>{learning_rate=>0.001},
eval_metric => "mse",
num_epoch => 25
);
の線に沿って何かを行うことができますような何か$train_iter
は、トレーニングデータに対する単純なNDArrayイテレータです。 (Perl APIでは、NDArrayと正確には同じではありませんが、そのインタフェースと完全に一致するため、概念的には同じです)。
1つの方法は、各列に変数を定義することです。しかし、あなたが念頭に置いているネットワーク構造を最初に明確にしてください。あなたは、いくつかのレイヤーで異なる変数をマージするネットワーク構造が必要です。または、データを先取りして処理する必要があります。つまり、単一の入力ベクトルを作成する必要があります。 – leezu
@leezuオリジナルの投稿を編集しました。それはあなたが「ネットワーク構造」の意味ですか?私はちょうど始めて、本当にこれを今のところ簡単に保っています。 – sail0r