質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Q&A

0回答

453閲覧

google colaboratoryでlistに要素が入っていない

U.D

総合スコア4

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

0グッド

0クリップ

投稿2021/02/28 12:59

編集2021/02/28 15:15

google colaboratoryを用いて、機械学習をしたいと思っていて画像ファイルを作り、コードをかき、画像をデータ化にする際だと思うのですが、なぜか画像ファイルから読み込んでくれません。

from PIL import Image import os, glob import numpy as np from sklearn import model_selection from google.colab import drive drive.mount('/content/drive') path = "/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder" classes =os.listdir(path) num_classes = len(classes) image_size = 50 num_testdata=200 #画像の読み込み X_train=[] X_test=[] Y_train=[] Y_test=[] for index, classlabel in enumerate(classes):#%猿イノシし、からすのデータをそれぞれ変換していく photos_dir= "./content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder"+ classlabel files = glob.glob(photos_dir + "/*.jpg" ) for i, file in enumerate(files): if i>=400:break #% forを抜ける image = Image.open(file) image = image.convert("RGB") #%R34G54B158とかの数字データになる。 image = image.resize((image_size,image_size)) data = np.asarray(image) #%数字データにする if i<num_testdata:#%テストデータ用に残してそれ以外は回転したりする X_test.append(data) Y_test.append(index) else: for angle in range(-30,30,2):#%-20から20度まで2度づつ #回転 img_r = image.rotate(angle) data = np.asarray(img_r) X_train.append(data) Y_train.append(index) #反転 img_trans =img_r.transpose(Image.FLIP_LEFT_RIGHT) data=np.asarray(img_trans) X_train.append(data) Y_train.append(index) #X= np.array(X) #Y= np.array(Y) X_train=np.array(X_train) X_test=np.array(X_test) y_train=np.array(Y_train) y_test=np.array(Y_test) xy= (X_train, X_test,y_train,y_test) np.save("/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/2judge.npy",xy) #%データをanimal.npyというファイルに全て保存する print(X_train) print(y_train) print(X_test) print(y_test) print(classes)

このコードを書くと```
[]
[]
[]
[]
['milk', 'girls', 'nuts', 'fish', 'meat', 'boy', 'food', 'salt']

となってしまいました この各ファイル内には400枚の写真がそれぞれあります。 これはデータを読み取ってないのでしょうか? またどうすれば良いか教えていただきたいです! 是非よろしくお願いします classlabel を実行するとsaltしか出てきていませんでした つまりfor 文が機能していないのでしょうか? ![](5a5da916a982abfc2243909233524ad4.png) ![](1a92314512252e6024c45435f90f15ed.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aipy2020

2021/02/28 13:33

フォルダ "/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder" の下のフォルダ構成はどのようになっていますか? 貼り付けられているソースコードからは、 photos_dirやfilesに、画像ファイルの名前やパスが正しく取得できているかわかりませんでした。 まずは print(files) 等で、画像ファイル名やパスが正しく取得できているか確認してはいかがでしょうか。
U.D

2021/02/28 14:38

folderの下は['milk', 'girls', 'nuts', 'fish', 'meat', 'boy', 'food', 'salt']というファイルが存在しており、 print(photos_dir) print(files) を実行すると ./content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder/salt [] となってしまい、folderのなかにはsaltしか存在していないことになり、さらにはsaltのなかには何もないと言われてしまいました。 これはどこのコードを変更すればいいのでしょうか?
aipy2020

2021/02/28 15:05 編集

>folderの下は['milk', 'girls', 'nuts', 'fish', 'meat', 'boy', 'food', 'salt']というファイルが存在しており、 ファイルではなくフォルダですよね。 /content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder/salt/画像ファイル.jpg というように画像ファイルが配置されているということですね。 気になったのは、 photos_dir= "./content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder"+ classlabel という部分です。 /contentの前に、"."は必要ですか? photos_dir= "/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder"+ classlabel が正しいのでは?
U.D

2021/02/28 15:09 編集

すみません。全くもってその通りでファイルではなく、フォルダーです。 はい。画像ファイル.jpgとなっております。 ご指摘いただいたように```python photos_dir= "/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder"+ classlabel ``` としてみたのですがさっきと変化がありませんでした。。。
aipy2020

2021/02/28 15:26

すみません。 ```python と、 ``` は、私のコメント投稿ミスです。ソースコードからは消してください。 >print(photos_dir) >print(files) >を実行すると >./content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder/salt >[] >となってしまい、folderのなかにはsaltしか存在していないこと saltしか出てこないのは、 >print(photos_dir) を記述した箇所が、for文の後だからでしょう。 for文内で、photos_dirが繰り返しごとに上書きされていて、forループの最後のclasslabelに格納された"salt"がphotos_dirに反映されているだけだと思います。 files = glob.glob(photos_dir + "/*.jpg" ) の後に print(files) を記述すると、たくさんの画像ファイル名(400個x8クラス)が出力されますか?
U.D

2021/02/28 15:34

わかりました!!ご丁寧にありがとうございます!!ほんとうに助かります saltの中身しか出てこない理由もわかりました。ありがとうございます!!! 言われてみた通りfiles = glob.glob(photos_dir + "/*.jpg" ) の後に print(files) を記述すると、 [] [] [] [] [] [] [] [] となり8個の[]が出てきてしまいました。 これは読み込みが全くできていないのでしょうか?
aipy2020

2021/02/28 15:41

画像の読み込みの前の、画像ファイル名のリスト"files"の取得に失敗しているようですね。 ちょっとわからなくなってきました。 photos_dir= os.path.join("/content/drive/My Drive/Colab Notebooks/kera_lesson_making_colab_ver/folder/", classlabel) としたらどうでしょうか。
U.D

2021/02/28 16:15

夜遅くまでありがとうございます 教えていただいたコードを実行しても、前の結果(8個の[])となってしまいました、、、、 これはどういったもので検索すれば出てくるかわかりますか? 自分でも調べようと思うのですが、検索する言葉すら出てこないので教えていただけると助かります。。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問