AttributeError: module 'torchvision.transforms' has no attribute 'make_grid'
时间: 2025-01-10 08:52:00 浏览: 80
### 解决 `torchvision.transforms` 模块中无 `make_grid` 属性的问题
遇到 `AttributeError: module 'torchvision.transforms' has no attribute 'make_grid'` 的情况通常是因为误解了 PyTorch 和 torchvision 库的功能分布。实际上,`make_grid` 函数位于 `torchvision.utils` 而不是 `torchvision.transforms` 下。
为了正确使用 `make_grid` 来创建网格图像展示多个图片或特征图,应当从 `torchvision.utils` 导入此函数:
```python
from torchvision.utils import make_grid
```
下面给出一段完整的代码片段用于加载一批图像并利用 `make_grid` 将其排列成单个网格显示出来:
```python
import torch
from torchvision import datasets, transforms
from torchvision.utils import make_grid
import matplotlib.pyplot as plt
def show_images(batch_of_imgs):
img_tensor = batch_of_imgs[:4] # 取前四张图片作为例子
grid_img = make_grid(img_tensor, nrow=2).permute(1, 2, 0) # 创建2x2的网格布局
plt.figure(figsize=(5, 5))
plt.imshow(grid_img)
plt.axis('off')
plt.show()
transform = transforms.Compose([
transforms.ToTensor(),
])
dataset = datasets.CIFAR10(root='./data', train=True,
download=True, transform=transform)
loader = torch.utils.data.DataLoader(dataset, batch_size=4,
shuffle=True, num_workers=2)
images, labels = next(iter(loader)) # 获取一个批次的数据
show_images(images)
```
这段代码定义了一个辅助函数 `show_images()` 接受一组图像张量输入,并调用 `make_grid` 方法来构建这些图像的一个可视化表示形式[^1]。
阅读全文
相关推荐


















