python的bug集合记录

1、读取txt文件时(refnms代码里面的voc单词txt),是一行一个单词,所以用以下方法读取的时候,读到的单词中会包含"\n"即换行符:

token_path = '/home/wj/code/ref_nms/cache/std_vocab_{}.txt'.format(dataset_splitby)
noun_tokens = open(token_path)
# 用下面两种方式逐行读取token
for token in noun_tokens:
# 或者:
for token in noun_tokens.readlines():

加入下面代码加入,去除换行符:

for token in noun_tokens:
#for token in noun_tokens.readlines():
        token=token.strip('\n')  # 去除换行符

2、出现错误:PyTorch:expected scalar type Float but found Double

原因是计算的类型不统一:有的tensor是float16(half)有的是float,有的是double,最后都将其转换为float类型

data.float() #data 是原有数据,tensor类型变量,用.float()转换

3、

 此问题是内存泄漏,应该是matplotlib.pyplot中的函数,在plt.savefig()后没有清空会导致figure占用内存越来越大,最大的时候应该占了20个G?

调用了plt.close不起作用。

解决方法1:加入下述两句代码:

plt.close('all') 
gc.collect()

解决方法2:

将所有的plt函数全部用cv2的函数????

4、TypeError: Object of type ‘Tensor‘ is not JSON serializable

tensor的数据类型,json不支持保存,1、将tensor转为numpy:

clip_soft_to_.detach().numpy()

2、再转为float()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值