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()