質問編集履歴

1

追記をしました。

2023/01/05 04:39

投稿

atomu__
atomu__

スコア3

test CHANGED
@@ -1 +1 @@
1
- 【Python】NameError: name 'X_train' is not definedとエラーが出てしまいます。
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
- NameError Traceback (most recent call last)
15
+ ValueError Traceback (most recent call last)
13
- <ipython-input-94-92463c032a75> in <module>
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
- 1 #学習データで学習
20
+ 44 #学習データ(八割)
15
- ----> 2 model.fit(X_train, Y_train, epochs = 20, batch_size = 16)
16
- 3
17
- 4 #テストデータで精度確認
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
- NameError: name 'X_train' is not defined
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
- X = np.array(X)
76
+ X = np.array(X)
63
- X = X.astype('float32')
77
+ X = X.astype('float32')
64
- X /= 255.0
78
+ X /= 255.0
65
79
 
66
- #ラベルの変換
80
+ #ラベルの変換
67
81
 
68
- Y = np.array(Y)
82
+ Y = np.array(Y)
69
- Y = np_utils.to_categorical(Y,n_classes)
83
+ Y = np_utils.to_categorical(Y,n_classes)
70
- Y[:5]
84
+ Y[:5]
71
85
 
72
- #学習データとテストデータに分ける(テストデータ二割、学習データ八割)
86
+ #学習データとテストデータに分ける(テストデータ二割、学習データ八割)
73
- X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)
87
+ X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)
74
- #学習データ(八割)
88
+ #学習データ(八割)
75
- print(X_train.shape)
89
+ print(X_train.shape)
76
- #テストデータ(二割)
90
+ #テストデータ(二割)
77
- print(X_test.shape)
91
+ print(X_test.shape)
78
- #学習データ(八割)
92
+ #学習データ(八割)
79
- print(Y_train.shape)
93
+ print(Y_train.shape)
80
- #テストデータ(二割)
94
+ #テストデータ(二割)
81
- print(Y_test.shape)
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
- ”X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.2)”でX_train,X_test,Y_train,Y_testが定義されているもだと思っているが、エラーが出てしまいす。
137
+ 調べてみると、ValueError: n_samples=0、test_size=0.2train_size=None 場合、結果トレーニング セットは空になりま。 前述のパタのいずれかを調整します。とう意味みたいです。
138
+ そして、Stack Overflowというサイトに同じエラーになった人が質問をしていてその答えに"私の場合、データへのパスが無効でした。 ロードされたファイルへのパスが存在するかどうか、またはファイルを読み取る変数にデータが保持されているかどうかを確認してください。"と書かれてありました。
127
- フォルダ構成間違っていて写真が上手く読み込れていないのかもれません
139
+ しかし、私ではこ意味理解できなかたので質問をさせ頂きまし
128
140
 
129
141
  ### 補足情報(FW/ツールのバージョンなど)
130
142
  MacBook Pro 13.0.1