質問編集履歴
1
追記をしました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
【Python】
|
1
|
+
【Python】ValueErrorが出てしまいます。
|
test
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
python初心者です。
|
3
3
|
https://sasuwo.org/image-classification/#toc2
|
4
4
|
上記のサイトを参考にGoogle Colabで画像認識AIを作っていたところ、"NameError: name 'X_train' is not defined"というエラーが出てしまいました。
|
5
|
+
どなたか解決方法をご教示頂けたら幸いです。
|
6
|
+
|
7
|
+
追記 ご回答頂いたことを試してみると質問したname errorは出なくなったのですが、value error というエラーが発生しました。
|
5
8
|
どなたか解決方法をご教示頂けたら幸いです。
|
6
9
|
### 実現したいこと
|
7
10
|
エラーが発生しない
|
@@ -9,15 +12,26 @@
|
|
9
12
|
### 発生している問題・エラーメッセージ
|
10
13
|
|
11
14
|
```
|
12
|
-
|
15
|
+
ValueError Traceback (most recent call last)
|
13
|
-
<ipython-input-
|
16
|
+
<ipython-input-3-343adfe60263> in <module>
|
17
|
+
41
|
18
|
+
42 #学習データとテストデータに分ける(テストデータ二割、学習データ八割)
|
19
|
+
---> 43 X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)
|
14
|
-
|
20
|
+
44 #学習データ(八割)
|
15
|
-
----> 2 model.fit(X_train, Y_train, epochs = 20, batch_size = 16)
|
16
|
-
3
|
17
|
-
|
21
|
+
45 print(X_train.shape)
|
18
|
-
5 score = model.evaluate(X_test, Y_test, batch_size = 16)
|
19
22
|
|
23
|
+
|
24
|
+
|
25
|
+
1 frames
|
26
|
+
|
27
|
+
/usr/local/lib/python3.8/dist-packages/sklearn/model_selection/_split.py in _validate_shuffle_split(n_samples, test_size, train_size, default_test_size)
|
28
|
+
2096
|
29
|
+
2097 if n_train == 0:
|
30
|
+
-> 2098 raise ValueError(
|
31
|
+
2099 "With n_samples={}, test_size={} and train_size={}, the "
|
20
|
-
|
32
|
+
2100 "resulting train set will be empty. Adjust any of the "
|
33
|
+
|
34
|
+
ValueError: With n_samples=0, test_size=0.2 and train_size=None, the resulting train set will be empty. Adjust any of the aforementioned parameters.
|
21
35
|
```
|
22
36
|
|
23
37
|
### 該当のソースコード
|
@@ -58,27 +72,27 @@
|
|
58
72
|
X.append(img)
|
59
73
|
Y.append(label)
|
60
74
|
|
61
|
-
|
75
|
+
~~打ち消し線~~#精度を上げるために正規化
|
62
|
-
|
76
|
+
X = np.array(X)
|
63
|
-
|
77
|
+
X = X.astype('float32')
|
64
|
-
|
78
|
+
X /= 255.0
|
65
79
|
|
66
|
-
|
80
|
+
#ラベルの変換
|
67
81
|
|
68
|
-
|
82
|
+
Y = np.array(Y)
|
69
|
-
|
83
|
+
Y = np_utils.to_categorical(Y,n_classes)
|
70
|
-
|
84
|
+
Y[:5]
|
71
85
|
|
72
|
-
|
86
|
+
#学習データとテストデータに分ける(テストデータ二割、学習データ八割)
|
73
|
-
|
87
|
+
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)
|
74
|
-
|
88
|
+
#学習データ(八割)
|
75
|
-
|
89
|
+
print(X_train.shape)
|
76
|
-
|
90
|
+
#テストデータ(二割)
|
77
|
-
|
91
|
+
print(X_test.shape)
|
78
|
-
|
92
|
+
#学習データ(八割)
|
79
|
-
|
93
|
+
print(Y_train.shape)
|
80
|
-
|
94
|
+
#テストデータ(二割)
|
81
|
-
|
95
|
+
print(Y_test.shape)
|
82
96
|
|
83
97
|
from keras.applications.vgg16 import VGG16
|
84
98
|
from keras.models import Sequential
|
@@ -120,11 +134,9 @@
|
|
120
134
|
```
|
121
135
|
|
122
136
|
### 試したこと
|
123
|
-
|
124
|
-
調べてX_trainが定義されていないということが分かり、print(Y_train)を書いてみるとY_trainも定義されていないことが分かりました。
|
125
|
-
X_test,Y_testもprintできません。
|
126
|
-
|
137
|
+
調べてみると、ValueError: n_samples=0、test_size=0.2、train_size=None の場合、結果のトレーニング セットは空になります。 前述のパラメータのいずれかを調整します。という意味みたいです。
|
138
|
+
そして、Stack Overflowというサイトに同じエラーになった人が質問をしていてその答えに"私の場合、データへのパスが無効でした。 ロードされたファイルへのパスが存在するかどうか、またはファイルを読み取る変数にデータが保持されているかどうかを確認してください。"と書かれてありました。
|
127
|
-
|
139
|
+
しかし、私ではこの意味が理解できなかったので質問をさせて頂きました。
|
128
140
|
|
129
141
|
### 補足情報(FW/ツールのバージョンなど)
|
130
142
|
MacBook Pro 13.0.1
|