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

質問編集履歴

2

追記しました。

2020/09/07 06:07

投稿

oinari03
oinari03

スコア59

title CHANGED
File without changes
body CHANGED
@@ -176,7 +176,11 @@
176
176
 
177
177
  ### まとめ
178
178
  個人的にはlossの値がおかしいのだろうなとは思っていますが、具体的にどうおかしくて、どう訂正すればいいのかが見当がつきません。
179
+ bathsizeを4などに増やしたらむしろlossが上がってしまいました...
179
180
 
181
+
182
+ できれば画像を増やす以外の方法を教えていただけるとありがたいです。
183
+
180
184
  なぜ、lossが振動してしまってるんでしょうかね....
181
185
  labelが正しい形になっていないんですかね。その正しい形って何ですかね。
182
186
  やっぱりどこをどういじればいいのかわからないのです。

1

ソースコードを変更しました。

2020/09/07 06:07

投稿

oinari03
oinari03

スコア59

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,7 @@
15
15
 
16
16
  ### ソースコード
17
17
  実行コード(train.py)
18
+ バッチサイズ=32,epoch=100
18
19
  ```
19
20
  import torch
20
21
  import torch.nn as nn
@@ -80,20 +81,21 @@
80
81
 
81
82
  # iterationの確定
82
83
  sample_size = len(train_dataset) #129
83
- # num_iters = sample_size // 32 #129 // 32 = 4.03
84
+ # num_iters = sample_size // 32 #129 // 32 = 32.03
84
85
 
85
86
  #loss
86
87
  criterion = nn.CrossEntropyLoss()
87
88
 
88
89
  losses = []
89
90
  #start epoch
90
- epoch_num = 2
91
+ epoch_num = 100
91
92
  for epoch in range(epoch_num): # loop over the dataset multiple times
92
93
  epoch_loss = 0
93
94
  for i, data in enumerate(train_loader, 0):
94
95
  # get the inputs; data is a list of [inputs, labels]
95
96
  inputs, labels = data[0].to(device), data[1].to(device)
96
- print(labels)
97
+ # print("label={}".format(labels))
98
+ print("inputs={}".format(inputs))
97
99
  # zero the parameter gradients
98
100
  optimizer.zero_grad()
99
101
  # forward + backward + optimize
@@ -126,48 +128,52 @@
126
128
 
127
129
  plot_history(losses)
128
130
 
131
+
129
132
  ```
130
133
  ### 実行結果
131
134
  個人的にいかがおかしいのではないかと思い、以下をprintしていますので、こちらの実行結果を貼ります。
132
135
  ```
133
- inputs, labels = data[0].to(device), data[1].to(device)
136
+ inputs, labels = data[0].to(device), data[1].to(device)
134
- print(labels)
137
+ print("label={}".format(labels))
135
138
  ```
136
139
  結果
137
140
  ```
138
141
 
139
142
  $ python train.py
140
- tensor([0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0,
143
+ label=tensor([0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1,
141
- 0, 0, 1, 1, 1, 0, 0, 0], device='cuda:0')
144
+ 1, 0, 1, 0, 0, 0, 0, 0], device='cuda:0')
142
145
  torch.Size([32, 9216])
143
- tensor([0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0,
146
+ label=tensor([0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
144
- 1, 0, 1, 0, 0, 1, 1, 1], device='cuda:0')
147
+ 0, 1, 1, 0, 1, 1, 1, 1], device='cuda:0')
145
148
  torch.Size([32, 9216])
146
- tensor([0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1,
149
+ label=tensor([0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1,
147
- 0, 1, 0, 0, 1, 0, 1, 0], device='cuda:0')
150
+ 0, 1, 1, 0, 1, 1, 1, 0], device='cuda:0')
148
151
  torch.Size([32, 9216])
149
- tensor([0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
152
+ label=tensor([1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1,
150
- 0, 0, 1, 1, 0, 1, 1, 1], device='cuda:0')
153
+ 1, 1, 0, 0, 1, 1, 0, 0], device='cuda:0')
151
154
  torch.Size([32, 9216])
152
- tensor([0], device='cuda:0')
155
+ label=tensor([1], device='cuda:0')
153
156
  torch.Size([1, 9216])
154
- tensor([0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1,
157
+ label=tensor([0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1,
155
- 0, 0, 1, 1, 0, 1, 0, 1], device='cuda:0')
158
+ 1, 0, 1, 1, 1, 0, 0, 1], device='cuda:0')
156
159
  torch.Size([32, 9216])
157
- tensor([1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0,
160
+ label=tensor([0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0,
158
- 1, 1, 1, 0, 1, 1, 1, 1], device='cuda:0')
161
+ 1, 0, 0, 1, 1, 0, 1, 1], device='cuda:0')
159
162
  torch.Size([32, 9216])
160
- tensor([0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1,
163
+ label=tensor([0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0,
161
- 0, 0, 1, 0, 0, 0, 1, 1], device='cuda:0')
164
+ 0, 0, 1, 1, 1, 0, 1, 0], device='cuda:0')
162
165
  torch.Size([32, 9216])
163
- tensor([0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
166
+ label=tensor([0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0,
164
- 0, 1, 0, 1, 1, 0, 0, 0], device='cuda:0')
167
+ 0, 1, 0, 1, 1, 0, 0, 1], device='cuda:0')
165
168
  torch.Size([32, 9216])
166
- tensor([1], device='cuda:0')
169
+ label=tensor([1], device='cuda:0')
167
170
  torch.Size([1, 9216])
168
171
  Finished Training
169
172
  ```
170
173
 
174
+ 次にinputの中身を表示したいと思います。
175
+
176
+
171
177
  ### まとめ
172
178
  個人的にはlossの値がおかしいのだろうなとは思っていますが、具体的にどうおかしくて、どう訂正すればいいのかが見当がつきません。
173
179