1. ValueError: could not convert string to float: ‘File’
- 问题原因:这里的报错是要把’File’这个转成float失败,非数字字符转换为float失败
- 解决方法:然后去检查哪里出现了这个’File’,data load读入多个文件的数据,其中有个文件第一行是File而非数字,而这个文件并不是我想要的,直接删掉
2. TypeError: init() got an unexpected keyword argument ‘ckpt_dir’
-
报错:logger = torch.utils.tensorboard.SummaryWriter(ckpt_dir=settings.ckpt_dir)
-
该报错是在执行模型训练时碰到,代码中报错行:logger = SummaryWriter(log_dir=settings.ckpt_dir)
-
问题原因:这类问题报错通常是tensorboard版本原因,可能高版本支持但低版本无此参数
-
解决方法:使用conda install安装新版tensorboard
conda install -c conda-forge tensorboard
-
补充:
- 查看SummaryWriter函数原型
torch.utils.tensorboard.writer.SummaryWriter(log_dir=None, comment='' , purge_step=None, max_queue=10, flush_secs=120, filename_suffix='')
- 参数log_dir(string):把事件文件写在该目录下,是一个分级目录。默认值是 runs/CURRENT_DATETIME_HOSTNAME
- 每次运行可设置不同目录如 ‘run/dir1’ ‘run/dir2’,这样就能比较两次运行结果。举例:
def __init__(self, logdir): try: from torch.utils.tensorboard import SummaryWriter self.writer = SummaryWriter(log_dir=logdir)
- 查看SummaryWriter函数原型
3. AttributeError: ‘list’ object has no attribute ‘shape’
-
报错
-
问题原因:np.array可使用 shape;而对于列表list,却不能使用shape来查看列表的维度
-
解决方法:np.array(list)转换后使用
-
类似的报错:list indices must be integers or slices, not tuple
4. ImportError: cannot import xxx from partially initialized module ‘xxxx’ (most likely due to a circular import)
- 可能原因:
- (1)导入的函数与标准库重名了
- (2) 两个模块循环引用了,需要去除循环依赖
- (3) 导入整个模块而不是导入模块函数
5. RuntimeError: expected scalar type Double but found Float
-
报错
-
问题原因:tensor的数据类型不对
-
解决方法:
x=x.to(torch.float32) labels = labels.long()
【参考文章】
circular import问题解方案
列表取片操作易错点
tensorboard.writer.SummaryWriter
tensorboard版本问题
tensorboard.writer.SummaryWriter方法示例