【python debug】could not convert string to float: ‘File‘ && got an unexpected keyword argument

  • python debug过程中碰到的问题随手记录
报错1:ValueError: could not convert string to float: ‘File’
  • 在网上没有搜到直接匹配的答案

  • 分析发现,这里的报错是要把’File’这个转成float失败,非数字字符转换为float失败

  • 然后去检查哪里出现了这个’File’,发现data load读入多个文件的数据时,其中有个文件第一行是File而非数字,而这个文件并不是我想要的,直接删掉

  • 当然在网上查到的类似问题有的是多了引号,如’123’,可通过.strip(“’”)把‘’去掉

报错2:TypeError: _ _init_ _() got an unexpected keyword argument ‘ckpt_dir’
  • 报错行:logger = torch.utils.tensorboard.SummaryWriter(ckpt_dir=settings.ckpt_dir)

  • 该报错是在执行模型训练时碰到,命令:

    python main.py --train_data data/sdd/train --ckpt_dir log_sdd
    
  • 检查代码中报错行:

    from torch.utils.tensorboard import SummaryWriter
    logger = SummaryWriter(ckpt_dir=LogFile)
    
  • 查看SummaryWriter函数原型:

    torch.utils.tensorboard.writer.SummaryWriter(log_dir=None, comment=''
    , purge_step=None, max_queue=10, flush_secs=120, filename_suffix='')
    
    # log_dir默认值是 runs/CURRENT_DATETIME_HOSTNAME
    
    # 每次运行可设置不同目录如 ‘run/dir1’ ‘run/dir2’,这样就能比较两次运行结果
    

    参数log_dir(string):把事件文件写在该目录下,是一个分级目录

  • SummaryWriter函数举例:

    def __init__(self, logdir):
    	try:
    		from torch.utils.tensorboard import SummaryWriter
    		self.writer = SummaryWriter(log_dir=logdir)
    
  • 源码中参数不对导致报错,修改为:

    logger = SummaryWriter(log_dir=LogFile)	# ckpt_dir -> log_dir
    
  • 其他这类问题报错通常是版本原因,可能高版本支持但低版本无此参数等,比如

    got an unexpected keyword argument ‘encoding’
    got an unexpected keyword argument ‘serialized_options’

 


参考文章:

python中raw_input().strip().split()
pytorch的SummaryWriter使用
SummaryWriter方法代码示例

created by shuaixio, 2022.05.28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值