Pytorch Deep Learningです。TypeError: 'builtin_function_or_method' object is not iterable エラーの解決方法
2022-02-18 21:12:54
Pytorchを使って画像分類を行う際、このバグに遭遇しました。このコードでもオンラインの例のようにエラーが報告されるので、不思議な感じでした。では、解決策を共有します。
TypeError: 'builtin_function_or_method' object is not iterable.
まず、私のエラーレポートの一部と関連するコードを掲載します。
import torch
import torch.utils.data as Data
import torchvision
from torchvision import transforms, datasets
# hyper parameters
BATCH_SIZE = 8
path = "DogsVSCats"
# define the data transform
data_transform = transforms.Compose([
ToTensor(), # change the pixel to [0, 1.0]
CenterCrop(224),
Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
# define the data set in dictionary form
image_data = {x:datasets.ImageFolder(root=os.path.join(path, x), transform=data_transform)
for x in ['train', 'valid']}
# define the data loader
data_loader = {x:Data.DataLoader(dataset=image_data[x], batch_size=BATCH_SIZE, shuffle=True)
for x in ['train', 'valid']}
# preview a batch of data in data set
# x_example, y_example = next(iter(data_loader['train']))
x_train, y_train = next(iter(data_loader["train"]))
print("number of x_examples:", len(x_train))
print("Number of y_examples:", len(y_train))
エラーはこの行で報告されます(下から3番目)。
x_train, y_train = next(iter(data_loader["train"]))
このコードを何度も確認したりググったりした結果、何も問題はないので、エラーの原因になっているのは、その前のdata_loaderを定義している部分だと判断しました。ウェブ上の動作する他のコードと比較した結果、トランスフォームが問題であることがわかりました。
transform を定義するときは、必ず最初に画像のサイズを変更し、次に ToTensor () を定義してください!
CenterCrop()とToTensor()の順番を調整した修正部分は以下のようになります。
# define the data transform !!! The order of the parameters is important !!! Resize first then ToTensor
data_transform = transforms.Compose([
Compose([ transforms.CenterCrop(224),
ToTensor(), # change the pixel to [0, 1.0]
Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])
関連
-
などの警告を出しながらFaster-RCNNを実行します。RuntimeWarning: invalid value encountered in greater_equal などの警告が表示されます。
-
OrderedDict' オブジェクトに 'eval' 属性がありません。
-
参照用シークレットを呼び出す:BN層詳細解説
-
PackagesNotFoundError: 次のパッケージは、現在のチャンネルから利用できません ソリューション
-
Tensorflowのメタフィジカルエラーです。終了コード -1073741819 (0xC0000005)
-
Win10でanacondaのconda activateで環境起動時にエラーが出る場合はどうすればいいのでしょうか?
-
caffeのインストールで「error : too few arguments in function call」エラーが発生する。
-
tensorflow experience code error Adding visible gpu devices: 0 , モジュール 'tensorflow' には 'Session' という属性がありません。
-
TensorFlow実行時エラー、AttributeError: モジュール 'pandas' には 'computation' という属性がない。
-
tensorflowエラーノート:PyCharmとAttributeErrorの下で様々なモジュールのインポートの問題:モジュール 'pandas.core.computation' は属性を持っていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ターゲット検出ベースモジュール(iou/giou/ciou/diou)のIoU概要
-
py-faster-rcnn/lib の make でエラー: コマンドラインオプション '-Wdate-time' が認識されない
-
ValueError:入力配列を形状 (450,600,3) から形状 (64,64,3) にブロードキャストできませんでした。
-
[Tensorflow-Error】CUDA_ERROR_OUT_OF_MEMORY:メモリが不足しています。
-
tensorflowをインポートしています。ImportError: libcublas.so.9.0: cannot open shared object file: No such file or director
-
トーチの取り付けと使用
-
U-netのソースコード解説(Keras編)
-
カーネルが死んだようです」の解決法。自動的に再起動します" の解決方法
-
ロジスティック回帰は2分法モデル
-
AttributeError: 'tuple' オブジェクトには 'log_softmax' という属性がありません。