代码pytorch-adda-master跑通记录

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

前言

最近在学习迁移学习ADDA算法由于嫌自己写麻烦准备先跑通别人的代码。
代码名称pytorch-adda-master
博客https://www.cnblogs.com/BlairGrowing/p/17020378.html
github地址https://github.com/corenel/pytorch-adda
源代码的配置环境为 python3.6 PyTorch 0.2.0

为了方便多个代码放在一起我直接用我的环境
python3.6pytorch 1.13.0
这导致了代码报错非常多经过修改之后终于可以运行。。。
由于修改之处非常多所以将修改之处放在CSDN里面以便自己观看

报错一

刚开始运行报错

urllib.error.URLError: 「urlopen error [Errno 11004] getaddrinfo failed」

参考链接修改DNS就行了具体修改步骤在这里

报错二

RuntimeError: output with shape [1, 28, 28] doesn't match the broadcast shape [3, 28, 28]

这是因为都是mnist数据集的灰度图片需要转变为RGB图片也就是通道数需要从1变成3参考链接
修改方法将mnist.py、usps.py中的
在这里插入图片描述

    pre_process = transforms.Compose([transforms.ToTensor(),
                                      transforms.Normalize(
                                          mean=params.dataset_mean,
                                          std=params.dataset_std)
                                      ])

修改成

    pre_process = transforms.Compose([transforms.ToTensor(),
                                      transforms.Normalize((0.1307,), (0.3081,))
                                      ])

报错三

IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python or `tensor.item<T>()` in C++ to convert a 0-dim tensor to a number

这应该是因为python、pytorch版本的不同导致的参考链接
具体修改就是将报错的.data[0] 修改成 .item()

报错四

RuntimeError: result type Float can't be cast to the desired output type Long

数据类型算法有问题参考链接
acc /= len(data_loader.dataset)
修改成
acc = acc/len(data_loader.dataset)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6