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

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

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

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

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Q&A

解決済

1回答

1689閲覧

Errorが出ます。Google Colab とPyTorchで Google Driveのオリジナル画像を読み込んで、表示するコード

hiruandon3

総合スコア3

Google Colaboratory

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

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

0グッド

0クリップ

投稿2021/09/22 07:43

編集2021/09/26 23:51

AIを勉強したい初心者ですが、最初から躓き。
windows 10
Google Colaboratory
Python
MyDriveの下に、オリジナルのカラー画像を3枚置きました。
これを読み込んで、表示したいのですが、Errorがでました。
見よう見まねのコードを入れたのですが、数値は羅列されても、画像はでません。
どなたか基本も含めて、ご指導ください。

TypeError: Invalid shape (3,616,820) for image data

オリジナルデータは横820*縦616の画素
カラー画像: tri1.jpg tri2.jpg tri3.jpg

python

1 2import os 3import torch 4import torchvision 5import torchvision.transforms as transforms 6from PIL import Image 7import matplotlib.pyplot as plt 8 9fnames=os.listdir('/content/drive/MyDrive/test') 10for fname in fnames: 11 image=Image.open('/content/drive/MyDrive/test/tri1.jpg') 12 13 loader=transforms.Compose([ 14 15 transforms.ToTensor() 16]) 17 18image=loader(image) 19print(image) 20plt.imshow(image) 21plt.show() 22

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

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

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

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

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

jbpb0

2021/09/22 08:33

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
meg_

2021/09/22 12:12

plt.imshow(image[0])とかで表示できますが、そういうことですか?
hiruandon3

2021/09/23 23:13

jbpb0様  回答が得やすい、質問投稿の様式についてのアドバイスありがとうございます。  回答をいただくことが目的ですから、質問の意図が伝わる表記方法は大切です。       ・・・・pythoh import os import torch : : plt.show() ..... 以後、ご指摘のこのような表記とします。      ありがとうございます。   今後もご指導お願いします。
hiruandon3

2021/09/23 23:33

meg_様    確認のご質問ありがとうございます。対応が遅くなって申し訳ありません、  Google Driveの中に保存してあるカラーのオリジナル画像(jpg)を3つ順次読み込んで画像そのものを表示表示し、確認したいと思っています。オリジナル画像は現在  /content/drive/MyDrive/test/  のフォルダーにあります。  現在はとりあえず画像は3枚ですが、最終的にはかなりの枚数の画像を処理したいと考えています。    投稿した現時点のコードには、不要なライブラリー、モジュールなど入っているかもしれません。    また、不適当な関数、パレメータ指定があるでしょう。希望していない画像(とおもわれる)の数値データは表示されましたが、肝心な画像が表示されません。画像が表示されないと正しく機能しているのか不安です。  不要なコード、必要なコード、パラメータなどご指導いただけたら嬉しいです。    meg_様のご指摘の  plt.imshow(image[0])  をそのまま一行挿入すればいいのでしょうか。ほかに削除、追加は必要でしょうか。  基本的な質問ですみません。  よろしくお願いします。
jbpb0

2021/09/24 08:13

何でそのままやってくれないのかなぁ .....Python ではなくて ```python です ........... ではなくて ``` です 文字を変えたらダメです 文字数を変えてもダメです 自分でキーボードで入力するのではなく、私のコメントからコピペしてください
hiruandon3

2021/09/26 23:25

修正しました。コピペしました。すみません。 ご指導ありがとうございます。
jbpb0

2021/09/26 23:33

pythonのコードの一番最後の行のすぐ下に ``` 「だけ」の行を追加してください 現状、下記のようにコードの行末に付いてます image=loader(image) print(image) plt.imshow(image) plt.show() ```
hiruandon3

2021/09/27 00:54

jbpb0様  再度のご指摘ありがとうございます。  改行しました。
jbpb0

2021/09/27 01:48

コードが見やすくなりました
hiruandon3

2021/09/27 03:34

jbpb0様  ご指導ありがとうございました。  今頃ですが気がつきました。  アドバイスいただいた表記にすれば、質問の欄において、コードだけが別表示に自動的になるようですね。細部に気が回らずご迷惑おかけしました。これに懲りずにご指導いただけば嬉しいです。
guest

回答1

0

ベストアンサー

画像を表示させるだけなら、PyTorchの機能は要らないので、これだけでできるはず

python

1import os 2from PIL import Image 3import matplotlib.pyplot as plt 4 5file_path = '/content/drive/MyDrive/test' 6fnames = os.listdir(file_path) 7for fname in fnames: 8 print(fname) 9 image = Image.open(file_path + '/' + fname) 10 plt.imshow(image) 11 plt.show()

 
PyTorchの「transforms.ToTensor()」でテンソルに変換したものを表示させる場合は、変換するときに順番が変わってるので、「np.transpose()」で順番を元に戻す必要があります
下記のコードでは、変換の前後のそれぞれで「shape」を表示させてるので、それを比べてみてください

python

1import numpy as np 2import os 3import torchvision.transforms as transforms 4from PIL import Image 5import matplotlib.pyplot as plt 6 7file_path = '/content/drive/MyDrive/test' 8fnames = os.listdir(file_path) 9for fname in fnames: 10 print(fname) 11 image = Image.open(file_path + '/' + fname) 12 print(np.array(image).shape) 13 loader = transforms.Compose([transforms.ToTensor()]) 14 image = loader(image) 15 print(image.shape) 16 plt.imshow(np.transpose(image.numpy(), (1,2,0))) 17 plt.show()

参考
pyTorchのtransforms,Datasets,Dataloaderの説明と自作Datasetの作成と使用
の「5. Datasetの使い方とDatasetの自作」の「5-1-1. transformsによる前処理の定義」

投稿2021/09/24 05:13

jbpb0

総合スコア7653

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

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

hiruandon3

2021/09/27 05:52

jbpb0様  具体的なコードも提案いただき、エラーも解消し、こちらの希望する処理が出来ました。しかも、今後必要となる処理にまで言及して指導いただきました。  ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問