torch.utils.tensorboard の SummaryWriter クラスを使用して画像を表示すると、入力テンソルのサイズと入力形式が異なるというエラーが報告されます

問題の説明

环境:Windows+Python+Pytorch

Pytorch の torch.utils.tensorboard で SummaryWriter クラスを使用して画像データを表示および処理する方法を学習すると、エラー メッセージが報告されます:
assert(len(tensor.shape) == len(input_format)), "size of input tensor and入力形式が異なります。
AssertionError: size of input tensor and input format are Different. tensor Shape: (64, 3, 32, 32), input_format: CHW 入力テンソルのサイズと入力形式が異なる理由は、主に次のとおり
です
add_image または add_images 関数: ① 入力画像が 1 つであるか複数画像かを確認します。1 つの画像の場合は add_image を使用し、複数の画像の場合は add_images を使用します。② 入力画像の形式が同じかどうかを確認します。一般関数のデフォルトはCHWなので、tensor.shape()で要件を満たしているか確認する③チャネル数が要件を満たしているかを確認する


import torch
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

dataset = torchvision.datasets.CIFAR10("../data", train=False, transform=torchvision.transforms.ToTensor(),
                                       download=True)
dataloader = DataLoader(dataset, 64)
writer = SummaryWriter("nn_conv2d")
step = 0
for data in dataloader:
    imgs, targets = data
    writer.add_image("Old Image", imgs, step)//add_image出错
    step = step + 1
writer.close()

//报错:assert(len(tensor.shape) == len(input_format)), "size of input tensor and input format are different. \ AssertionError: size of input tensor and input format are different.         tensor shape: (64, 3, 32, 32), input_format: CHW

原因分析:

ここで、imgs は複数の画像であり、タイプは [64, 3, H, W] で、add_image は 1 つの画像にのみ使用されます。


解決:

add_image を add_images に置き換えます

おすすめ

転載: blog.csdn.net/SmaICG/article/details/123857129