TabError- inconsistent use of tabs and spaces in indentation 查验及解决方法

13 篇文章 2 订阅

TabError: inconsistent use of tabs and spaces in indentation 查验及解决方法

报错代码

def eccv16(pretrained=True):
	model = ECCVGenerator()
	if(pretrained):
		import torch.utils.model_zoo as model_zoo
		model.load_state_dict(torch.load('/home/ps/.cache/torch/hub/checkpoints/colorization_release_v2-9b330a0b.pth', map_location='cpu'))
		# model.load_state_dict(model_zoo.load_url('https://colorizers.s3.us-east-2.amazonaws.com/colorization_release_v2-9b330a0b.pth',map_location='cpu',check_hash=True))
        
	return model

代码来自github上colorization自监督学习仓库,笔者使用的编辑器是VS Code,注释起来的一句是原文,注释上面的一句是笔者自己添加的,报错正是来自这一句:

File "/home/ps/JJ_Projects/ssl_transformer_aes/ssl_related/colorization-master/colorizers/eccv16.py", line 105
    model.load_state_dict(torch.load('/home/ps/.cache/torch/hub/checkpoints/colorization_release_v2-9b330a0b.pth', map_location='cpu'))
                                                                                                                                      ^
TabError: inconsistent use of tabs and spaces in indentation

可以看到报错信息大概是说tabspace的缩进不一致,但是我们肉眼明明看到缩进是正常对齐的。笔者猜测报错的原因是,原来代码的作者和笔者修改时的编辑器、缩进方式的设置是不一样的。网上查到的解决方法都是将正常不报错的地方的代码前的缩进复制过来。但是这是为什么呢,我们怎么能在报错之前看到哪一行的缩进有问题呢?

查验及解决方法

笔者想到,如果用一种统一的显示方式是否就能看出缩进方式的不同了,因此想到在命令行中输出打印文件内容。

如何查验

我们在命令行使用cat colorizers/eccv16.py命令来查看文件内容:

在这里插入图片描述

果不其然,确实是我们自己写的(即报错)行的缩进和其他行是不一致的,虽然在VS Code编辑器中查看时二者是对齐的。

解决方法

那我们先按照网上的解决方法试一试,即将正常不报错的地方的代码前的缩进复制过来,再cat显示文件:

在这里插入图片描述

注意,我们将正常缩进复制过来之后,在编辑器中还是对齐的正常的缩进,在cat的结果中,也是对齐的了,那这样就是正常的代码了。这正是网上流传的这种方法能够解决问题的原因。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值