複数の入力に対応したDatasetの作り方について

456 views
Skip to first unread message

oniw...@gmail.com

unread,
May 8, 2017, 11:23:25 AM5/8/17
to Chainer Japanese User Group
お世話になります、chainer-1.23.0を使用しています
プログラミング初心者のため質問以外にも間違えているところがあるかと思います。
ご指摘いただけたら幸いです。

質問

それぞれ5個の要素を持つ配列を5個(5*5の二重配列)を入力に使いたいのですが、
(入力データが(5,5,5,5,5)となっています)

独自のデータセットを作るには、
chainer.datasets.tuple_datasetを使い、trainとtestを作成し、
その後、chainer.iterators.SerialIteratorを使って、train_iterを作成していると考えています。(Reference Manualや、examplesのMNISTを参考にしました)



しかし、入力層に複数の入力をしたい時に、chainer.datasets.tuple_datasetで作ったtrainデータはどのように入力させるのでしょうか?

私が意味するところとしましては、以下のようなモデルのデータの入力方法です
# x0 ~ x4が入力データ
x0 = Variable(train_data[0]) (train_data[0] は(1,5)のnumpy.array)
x1 = Variable(train_data[1])
x2 = Variable(train_data[2])
x3 = Variable(train_data[3])
x4 = Variable(train_data[4])
y = Variable(train_data[5]) (ここも不安がまだありますが...)
として、
class Mymodel(Chain):
    def __init__(self):
        super(Mymodel,self).__init__(
        l11 = L.Linear(5,n)
        l12 = L.Linear(5,n)
        l13 = L.Linear(5,n)
        l14 = L.Linear(5,n)
        l15 = L.Linear(5,n)
        l2 = L.Linear(5n,...
        ......


    def __call__(self,x0,x1,x2,x3,x4,y):
        h11 = F.sigmoid(self.l11(x0))
        h12 = F.sigmoid(self.l12(x1))
        h13 = F.sigmoid(self.l13(x2))
        h14 = F.sigmoid(self.l14(x3))
        h15 = F.sigmoid(self.l15(x4))
        h2 = F.sigmoid(F.concat((h11,h12,h13,h14,h15),axis=1))
        ......
        h = ...
        h = ...
        return F.mean_squared_error(h,y)

といった、wideなモデルの時の入力を用いてtrain_iterを作成して、trainerを使いたいのです。(上のようなwideなモデルの結合(F.concat)はInceptionのsourceを参考にしました、間違っていたら申し訳ありません)

回答よろしくお願いします

Kenta Oono

unread,
May 9, 2017, 6:31:44 PM5/9/17
to oniw...@gmail.com, Chainer Japanese User Group
大野です。

入力のフォーマットについて確認をさせていただけますでしょうか。
擬似コード中のtrain_dataは、1サンプルに対する特徴ベクトルであり、1サンプルはshapeが(1, 5)のデータ5個からなるということでしょうか。
また、入力データのshapeが(5, 5, 5, 5,
5)ということは、(shapeの0次元目が5なので)、サンプル数は5個という認識であっておりますでしょうか。(そうすると、1サンプルのshapeは(5,
5, 5, 5)となり、上のtrain_dataとsizeと整合性が取れないように思います)

何か認識違いがありましたらご指摘いただけますでしょうか



2017年5月8日 8:23 <oniw...@gmail.com>:
> --
> このメールは Google グループのグループ「Chainer Japanese User Group」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには chainer-jp+...@googlegroups.com
> にメールを送信してください。
> このグループに投稿するには chain...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには
> https://groups.google.com/d/msgid/chainer-jp/9cb08009-88d1-4db8-afe5-3ff87587053c%40googlegroups.com
> にアクセスしてください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
Preferred Networks Inc. (PFN)
Kenta Oono
oo...@preferred.jp

Otemachi Bldg. 2F, 1-6-1, Otemachi, Chiyoda-ku, Tokyo, Japan 100-0004
http://preferred-networks.jp
Reply all
Reply to author
Forward
0 new messages