Certifacte verify failed: certificate has expired (_ssl.c:1108)
看字面意思好像是python证书的问题,但其实是在下载某个模型时遇到的,查了网上一些去下载证书的方法,无果(网站打不开)于是选择自行下载好这个模型,再传到服务器上,完美解决~
linux查看cuda版本
失败:
cat /usr/local/cuda/version.txt
懒得找为什么
成功:
nvcc --version
但是忘记在哪里看到的了,好像这两种方案中,有一种是错误的,其显示的不是当前cuda版本,而是当前能容纳的最高cuda版本
range类型转list
b = list(range(10))
python中实现for循环的并行
为了实现这一点,今天真实搞吐我了…检索了好多办法,都感觉不适合我的任务,看到最多的是multiprocessing方法,但这种方法,感觉传递的参数有限,好几个例子中都只能传递一个参数…
于是我又找了一些,发现sklearn封装好的Parallel更容易学一点,参考文章python循环并行,sklearn大神们早已经为你封装好了一个函数于是就写成了:
def evaluate_model(t, movie_clip_featmaps, model, sent_vec):
featmap = movie_clip_featmaps[t][1]
visual_clip_name = movie_clip_featmaps[t][0]
start = float(visual_clip_name.split("_")[1])
end = float(visual_clip_name.split("_")[2].split("_")[0])
featmap = np.reshape(featmap, [1, featmap.shape[0]])
outputs = model(torch.from_numpy(featmap).cuda(device), torch.from_numpy(sent_vec).cuda(device))
outputs = torch.reshape(outputs, [3])
reg_end = end + outputs[2]
reg_start = start + outputs[1]
return outputs[0], reg_start, reg_end
parallel =Parallel(n_jobs=8)
all_results = parallel(delayed(evaluate_model)(t, movie_clip_featmaps, model, sent_vec) for t in range(len(movie_clip_featmaps)))
zipped_results = list(zip(*all_results))
sim, reg_start, reg_end = zipped_results
sentence_image_mat[k, :] = np.array(sim)
# sentence_image_reg_mat[k, :, 0] = np.array(reg_start)
# sentence_image_reg_mat[k, :, 1] = np.array(reg_end)
有机会再做解释