回答編集履歴
4
修正
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
修正
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
修正
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
修正
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 はディレクトリ構成
|
16
|
+
今回、train と val はディレクトリ構成として別れているので、1つのデータセットを2つに分割するのに使用する sampler を使う必要がそもそもないのではないでしょうか
|
17
17
|
|
18
18
|
|
19
19
|
```python
|