completely automatic design CNN architecture based on blocks源码ea-CNN:调试遇到的问题

问题一、在执行下面这句代码

 trainloader, validate_loader = data_loader.get_train_valid_loader('D:\major\NN\datasets\cifar10\cifar-10-python\cifar-10-batches-py', batch_size=128, augment=True, valid_size

读取数据集的时候,出现如下的错误:
^
SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 8-9: malformed \N character escape
这篇文章说
报错是因为在Windows下的文件路径是 “”,但是在代码中会被编译为转义字符,所以正确的用法是将其修改成“/”,或者是双杠“\” 即D:/major/NN/datasets/cifar10/cifar-10-python/cifar-10-batches-py
或者D:\major\NN\datasets\cifar10\cifar-10-python\cifar-10-batches-py
然后改完就可以了
问题二、在训练模型时,执行train()函数时,本来设置的batch=128,出现的错误oom:
Exception occurs, file:indi0003, pid:15312…CUDA out of memory. Tried to allocate 32.00 MiB (GPU 0; 2.00 GiB total capacity; 1.24 GiB already allocated; 14.62 MiB free; 110.38 MiB cached)
然后看网上有的说可以将batchsize改得小一点,然后就改成batch=32就行了。如果还是不行的 话,就16,8,1
训练模型时出现GPU不够用的时候,清理GPU或者减少batch,
这个问题可以看看这里pytorch GPU 显存释放的问题?
问题三、调试的时候发现在训练模型运行train()函数时,
pytorch报错:IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number
是前后用的torch版本不同造成的。
解决:将loss.data[0] 改成loss.item()

 # running_loss += loss.data[0]*labels.size(0)
 running_loss += loss.item()*labels.size(0)

这里参考invalid index of a 0-dim tensor

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值