回答編集履歴

1

情報追加

2019/01/29 07:52

投稿

redp
redp

スコア49

test CHANGED
@@ -3,3 +3,37 @@
3
3
  load_dataメソッドの引数に、trainかtestを文字列で渡すことによって、訓練用のデータかテスト用のデータを返すようにしているため、テストデータを読み込むためにload_data('test')としています。
4
4
 
5
5
  よって訓練データのときには、load_data('train')を使っていると思います。
6
+
7
+
8
+
9
+ # 追記
10
+
11
+ 仕様を理解しないまま解答してしまいすいません。ここで補足いたします。
12
+
13
+ 著者作のDatasetクラスはコンストラクタでtrain_fileとtest_fileのファイル名を指定するようになっています。よって、テスト用データとしてval.txtのデータを使いたかったから
14
+
15
+ ```
16
+
17
+ ds = dataset.Dataset(test_file='val.txt', classes=classes)
18
+
19
+ ```
20
+
21
+ このようなインスタンス化をしています。
22
+
23
+ 実際に丁寧な書き方をすると、
24
+
25
+ ```
26
+
27
+ ds = dataset.Dataset(train_file='train.txt', test_file='val.txt', classes=classes)
28
+
29
+ ```
30
+
31
+ このようになるのですが、load_dataメソッドを見るとload_data('train')と指定すると上記のtrain_fileに指定されたファイルのデータ、ここでは'train.txt'のデータが読み込まれ、返されます。
32
+
33
+ また、'train'以外の文字列(なんでもいいのですが、記事では)load_data('test')とするとコンストラクタの引数test_fileに指定した'val.txt'が読み込まれ、返されます。
34
+
35
+
36
+
37
+ 冗長になりましたが、結論としましてはdsを作成する際の引数にtest_file='val.txt'と指定したためval.txt内のデータが返され予測に使われたということです。
38
+
39
+ よって、test_fileに'test.txt'と入れればtest.txt内のデータが使われると思います。