

手元のCSVファイル（テキスト, ラベル）をtorchtextで読み込んでdataloaderにしたいのですが、結果が転置されてしまいます。  
train_loaderのshapeは(Batch_size, vocabrary_size)となるかと思うのですが、(vocabrary_size,
Batch_size)となってしまいます。

どなたか原因を指摘頂けないでしょうか。

[code]

    # フィールド定義
    max_len = 25
    TEXT = torchtext.data.Field(sequential=True, use_vocab=True,fix_length=max_len)
    LABEL = torchtext.data.Field(sequential=False, use_vocab=False, is_target=True)
    
    # データの読み込み
    dataset = torchtext.data.TabularDataset(
        path='./sample.csv',
        format='csv',
        fields=[('Text', TEXT), ('Label', LABEL)])
    
    # trainとtestで分割
    train_dataset, test_dataset = dataset.split(split_ratio=0.8)
    
    # 単語ID化
    TEXT.build_vocab(train_dataset, min_freq=5)
    
    #　データローダーの作成
    train_loader = torchtext.data.Iterator(train_dataset, train=True, batch_size=4)
    test_loader = torchtext.data.Iterator(test_dataset, train=False, sort=False, batch_size=4)
    
[/code]


CC BY-SA 4.0
2020-04-13T06:08:26.560
65581
2020-05-20T08:55:21.700
2020-05-17T22:00:17.847
19110
27267
question
python pytorch
torchtext.data.Iteratorでdataloaderを作成すると、結果が転値(Transpose)されてしまう


もともとそのような仕様だからだと思います。  
なぜ、そのような仕様なのかというと、データをLSTMなどに入れるとき、まずは、テキストのシーケンス方向に沿って、ループしてから、各単語のバッチデータを順に入れていくので、(vocabrary_size,
Batch_size)の順番の方が都合がよかったのだと思います。


CC BY-SA 4.0
2020-05-20T08:55:21.700
66811
2020-05-20T08:55:21.700
40243
65581
answer