回答編集履歴
4
補足追記
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
y = np.append(y, np.array([1], dtype = np.uint8)).reshape(-1,1)
|
35
35
|
```
|
36
36
|
|
37
|
-
以下のように修正して、Xを追記しき、Xのshapeが(120, 150, 150, 4)になるようにします。最初の次元が60回ループさせた積み重ね方向です。
|
37
|
+
以下のように修正して、Xを追記しき、Xのshapeが(120, 150, 150, 4)になるようにします。最初の次元が60回ループ(×2画像)させた積み重ね方向です。また、yもOne-hotベクトル形式を積み重ねることで、shapeが(120, 2)になるのが正しいです。
|
38
38
|
|
39
39
|
```Python
|
40
40
|
X = np.empty((0,150,150,4))
|
3
補足追記
answer
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
エラーの意味は、model.fitにおけるx_trainの形式が違うということです。
|
2
|
-
|
2
|
+
またこの部分のエラーを取る、y_trainの形式も違うというエラーが新たに出ます。クラス分類なので、正解データは、1,0といったスカラー値ではなく、[1,0],[0,1]といった各要素が各クラスのウエイト1になるようなOne-hotベクトル形式にすべきです。
|
3
3
|
|
4
|
+
まず、モデル定義のところの修正が必要です。
|
5
|
+
|
4
6
|
```Python
|
5
7
|
model = Sequential()
|
6
8
|
model.add(Conv2D(16, (3, 3),
|
@@ -15,7 +17,7 @@
|
|
15
17
|
input_shape=(150, 150, 4), activation='relu'))
|
16
18
|
```
|
17
19
|
|
18
|
-
また、上記の他に、forループでXが毎回上書きされているという間違い
|
20
|
+
また、前処理において、yの形式を変更しましょう。さらに、上記の他に、forループでXが毎回上書きされているという間違いもあります。
|
19
21
|
|
20
22
|
```Python
|
21
23
|
for i in range(1, 61):
|
@@ -36,16 +38,15 @@
|
|
36
38
|
|
37
39
|
```Python
|
38
40
|
X = np.empty((0,150,150,4))
|
39
|
-
y =
|
41
|
+
y = np.empty((0,2))
|
40
42
|
for i in range(1, 61):
|
41
43
|
|
42
44
|
(中略)
|
43
45
|
|
44
46
|
p1 = imageio.imread(f"/Users/K/Downloads/hifu_photos/melano/melano-{i:03d}.png").reshape(150,150,4)
|
45
|
-
y = np.append(y, np.array([0], dtype = np.uint8)).reshape(-1,1)
|
46
|
-
|
47
|
-
|
48
47
|
p2 =imageio.imread(f"/Users/K/Downloads/hifu_photos/normal/normal-{i:03d}.png").reshape(150,150,4)
|
49
48
|
X = np.vstack([X, np.stack([p1, p2])])
|
50
|
-
y = np.
|
49
|
+
y = np.vstack([y, [[1, 0], [0, 1]]])
|
51
|
-
```
|
50
|
+
```
|
51
|
+
|
52
|
+
できあがったモデルで予測をした場合、結果はベクトル形式ででてきます。各要素が、対応するクラスの予測可能性に相当します。
|
2
前処理の修正
answer
CHANGED
@@ -32,21 +32,20 @@
|
|
32
32
|
y = np.append(y, np.array([1], dtype = np.uint8)).reshape(-1,1)
|
33
33
|
```
|
34
34
|
|
35
|
-
以下のように修正して、Xを追記し
|
35
|
+
以下のように修正して、Xを追記しき、Xのshapeが(120, 150, 150, 4)になるようにします。最初の次元が60回ループさせた積み重ね方向です。
|
36
36
|
|
37
37
|
```Python
|
38
|
+
X = np.empty((0,150,150,4))
|
39
|
+
y = []
|
38
40
|
for i in range(1, 61):
|
39
41
|
|
40
42
|
(中略)
|
41
43
|
|
42
44
|
p1 = imageio.imread(f"/Users/K/Downloads/hifu_photos/melano/melano-{i:03d}.png").reshape(150,150,4)
|
43
|
-
X = np.append(X, p1)
|
44
45
|
y = np.append(y, np.array([0], dtype = np.uint8)).reshape(-1,1)
|
45
46
|
|
46
47
|
|
47
48
|
p2 =imageio.imread(f"/Users/K/Downloads/hifu_photos/normal/normal-{i:03d}.png").reshape(150,150,4)
|
48
|
-
X = np.
|
49
|
+
X = np.vstack([X, np.stack([p1, p2])])
|
49
50
|
y = np.append(y, np.array([1], dtype = np.uint8)).reshape(-1,1)
|
50
|
-
```
|
51
|
+
```
|
51
|
-
|
52
|
-
なお、`NameError: name 'X' is not defined`が出たら、forの前に`X = []`を入れてください。
|
1
誤字の修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
input_shape=(150, 150, 3), activation='relu'))
|
8
8
|
```
|
9
9
|
|
10
|
-
以下のように修して、RBGAの4次元に対応させます。
|
10
|
+
以下のように修正して、RBGAの4次元に対応させます。
|
11
11
|
|
12
12
|
```Python
|
13
13
|
model = Sequential()
|