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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3653閲覧

グーグルコラボで今まで動いていたプログラムが、動かなくなりました

nact

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/01/29 08:18

編集2023/01/29 19:33

前提

ここに質問の内容を詳しく書いてください。
画像を2群に判別するプログラムを書いています

実現したいこと

最近まで動いていたのに
給に動かなくなりました

発生している問題・エラーメッセージ


AttributeError Traceback (most recent call last)
<ipython-input-9-689a7ef2904d> in <module>
54
55 prediction_loader = torch.utils.data.DataLoader(prediction_subset, batch_size=batch_size, shuffle=True)
---> 56 inputs, _ = iter(prediction_loader).next()
57
58 #inputs, _ = iter(prediction_loader).next(iter(dataloader))

AttributeError: '_SingleProcessDataLoaderIter' object has no attribute 'next'

該当のソースコード

data_type = "学習データ"
batch_size = 8

モデルの選択 = "自作のモデル"

入力画像を表示する関数の作成

def imshow(img):
img = img / 2 + 0.5
plt.title("予測に使った画像")
plt.imshow(img.transpose(0, 1).transpose(1, 2))
plt.axis("off")
plt.show()

def prediction(model, inputs):

imshow(torchvision.utils.make_grid(inputs))
outputs = model(inputs.to(device))
outputs = outputs.to("cpu").argmax(dim=1)

数値から名称に変換

ans = []
sorted_keys = sorted(keywords)
for label in outputs:
for index in range(len(keywords)):
if label==index:
ans.append(sorted_keys[index])
print("AIの予測結果", ans)

if data_type=="学習データ":
prediction_subset = train_subset
else :
prediction_subset = test_subset
model = cnn if モデルの選択 =="自作のモデル" else transfer_model

データローダー

prediction_loader = torch.utils.data.DataLoader(prediction_subset, batch_size=predict_num, shuffle=True)

データローダーから1バッチ分データを取り出す

inputs, _ = iter(prediction_loader).next()

予測する

prediction(cnn, inputs)

補足情報(FW/ツールのバージョンなど)

google コラボラトリを用いています
inputs, _ = iter(prediction_loader).next()でエラーが起きるのですが
昨年まではこんなところでエラーが起きず、バージョン変更によるエラーなのでしょうk、、、

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

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

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

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

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

meg_

2023/01/29 08:30

Pytorchをお使いでしょうか? GoogleColaboratoryのデフォルトのまま使っているならPytorchのバージョンが変わっていたりしませんか?一度確認されてはどうでしょうか?
退会済みユーザー

退会済みユーザー

2023/01/29 10:09 編集

[最初の投稿:2023/01/29 17:18 の記載内容に対するコメント] 質問に書いてある「該当のソースコード」と「エラーメッセージ」の内容に齟齬があります。 そのエラーメッセージによると、エラーを起こしているのは inputs, _ = iter(prediction_loader).next() であって、 inputs, _ = iter(prediction_loader).next(iter(dataloader)) ではありません。 (質問文のコードは inputs, _ = iter(prediction_loader).next(iter(dataloader)) となっています) →→→ 本当に、質問文のコード(があるセル)を実行されていますか? 一度冷静になって、状況を確認の上、質問内容に修正がある場合は質問文を編集してください
nact

2023/01/29 09:50

お忙しい中、ありがとうございます meg様 pytorchのバージョンは確認しましたが、前のバージョンが分からず、、、 Python3.8だったので、3.71に変更しましたが、直らず、、、 qnoir様 お忙しい中、ありがとうございます 1行ごとに確認したのですが、ここのinputsで止まってしまいます ここでエラーが起きているとおもうのですが よく調べてみたいと思います ありがとうございます
退会済みユーザー

退会済みユーザー

2023/01/29 09:56

それか、同じセルであっても、質問文に記載してある部分以外のところで起きている可能性があります。 そのセルのコードを省略せずに全部記載してください。
guest

回答2

0

ベストアンサー

# データローダーから1バッチ分データを取り出す inputs, _ = iter(prediction_loader).next()

inputs, _ = next(iter(prediction_loader))

に変えてみて下さい。

投稿2023/01/29 10:07

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ありがとうございます!
無事に解決しました!

投稿2023/01/29 10:33

nact

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問