質問するログイン新規登録

回答編集履歴

4

修正

2020/06/09 14:40

投稿

tiitoi
tiitoi

スコア21962

answer CHANGED
@@ -40,7 +40,7 @@
40
40
  )
41
41
  train_dataset = datasets.ImageFolder("imagenette-320/train", transform=train_transform)
42
42
  valid_dataset = datasets.ImageFolder("imagenette-320/val", transform=valid_transform)
43
- train_loader = data.DataLoader(train_dataset, batch_size=128)
43
+ train_loader = data.DataLoader(train_dataset, batch_size=128, shuffle=True)
44
44
  valid_loader = data.DataLoader(valid_dataset, batch_size=128)
45
45
  ```
46
46
 

3

修正

2020/06/09 14:39

投稿

tiitoi
tiitoi

スコア21962

answer CHANGED
@@ -55,6 +55,8 @@
55
55
  また、学習が上手くいくかどうかは学習率やバッチサイズなどハイパーパラメータに左右されるので、あるデータセットやモデルで上手くいったものをそのまま別のものに使いまわしても同様に上手くいくとは限らないので、ハイパーパラメータを調整して、上手くいく値を見つける必要があります。
56
56
 
57
57
  mobilenetv2 (v1 は torchvision になかった) で imagenette-320 を学習するサンプルコードを作成したので、一応載せておきます。
58
+
59
+ ↓ こちらで試したコード
58
60
  [transfer-learning-mobilenetv2-imagenette320.ipynb](https://github.com/nekobean/pytorch-examples/blob/master/pytorch-transfer-learning/transfer-learning-mobilenetv2-imagenette320.ipynb)
59
61
 
60
62
  参考

2

修正

2020/06/09 14:24

投稿

tiitoi
tiitoi

スコア21962

answer CHANGED
@@ -42,4 +42,20 @@
42
42
  valid_dataset = datasets.ImageFolder("imagenette-320/val", transform=valid_transform)
43
43
  train_loader = data.DataLoader(train_dataset, batch_size=128)
44
44
  valid_loader = data.DataLoader(valid_dataset, batch_size=128)
45
- ```
45
+ ```
46
+
47
+ ## 追記
48
+
49
+ > Accuracyが100%か0%としか出力されなくなってしました。
50
+ > これはデータアクセスの方法に問題があるのでしょうか。
51
+
52
+ データのアクセス方法は問題なさそうに見えます。
53
+ 100%や0%になるとのことですが、Accuracy や Loss はバッチ単位で表示しても激しく変動するので、あまり参考になりません。1エポックが終了したときにそのエポックの平均を算出して表示するようにしてみてはどうでしょうか。
54
+
55
+ また、学習が上手くいくかどうかは学習率やバッチサイズなどハイパーパラメータに左右されるので、あるデータセットやモデルで上手くいったものをそのまま別のものに使いまわしても同様に上手くいくとは限らないので、ハイパーパラメータを調整して、上手くいく値を見つける必要があります。
56
+
57
+ mobilenetv2 (v1 は torchvision になかった) で imagenette-320 を学習するサンプルコードを作成したので、一応載せておきます。
58
+ [transfer-learning-mobilenetv2-imagenette320.ipynb](https://github.com/nekobean/pytorch-examples/blob/master/pytorch-transfer-learning/transfer-learning-mobilenetv2-imagenette320.ipynb)
59
+
60
+ 参考
61
+ [Pytorch - 事前学習モデルを使ってクラス分類モデルを学習する方法](https://pystyle.info/pytorch-train-classification-problem-using-a-pretrained-model/)

1

修正

2020/06/09 14:18

投稿

tiitoi
tiitoi

スコア21962

answer CHANGED
@@ -13,7 +13,7 @@
13
13
  で train_dataset のインデックスを元に作成したものですよね。
14
14
  それを valid_dataset を参照する際に使用したら、train_dataset と val_dataset はサンプル数が異なるので、out of range になります。
15
15
 
16
- 今回、train と val はディレクトリ構成別れているので、1つのデータセットを2つに分割するのに使用する sampler を使う必要がそもそもないのではないでしょうか
16
+ 今回、train と val はディレクトリ構成として別れているので、1つのデータセットを2つに分割するのに使用する sampler を使う必要がそもそもないのではないでしょうか
17
17
 
18
18
 
19
19
  ```python