cupy加速numpy

1.安装cupy

查看cuda版本

cuda=11.1

pip3 install cupy-cuda111 -i https://mirrors.aliyun.com/pypi/simple/

2.将在gpu上的<torch.Tensor>数据类型转化成numpy,并放于cpu上

f_cls_sthree=f_cls_sthree.cpu().detach().numpy()
f_cls_tthree = f_cls_tthree.cpu().detach().numpy()

#转化成cupy.ndarray
f_cls_sthree = cp.asarray(f_cls_sthree)
f_cls_tthree = cp.asarray(f_cls_tthree)

3.将np改成cp

def compute_kernel_bias(vecs):
    """计算kernel和bias
    vecs.shape = [num_samples, embedding_size],
    最后的变换:y = (x + bias).dot(kernel)
    """
    mu = vecs.mean(axis=0, keepdims=True)
    cov = cp.cov(vecs.T)
    u, s, vh = cp.linalg.svd(cov)
    W = np.dot(u, cp.diag(1 / cp.sqrt(s)))
    return W, -mu

def transform_and_normalize(vecs, kernel=None, bias=None):
    """应用变换,然后标准化
    """
    if not (kernel is None or bias is None):
        vecs = (vecs + bias).dot(kernel)
    return vecs / (vecs**2).sum(axis=1, keepdims=True)**0.5

4.将数据重新放入gpu

s_data = torch.tensor(s_data).to(torch.float32).to("cuda")
t_data = torch.tensor(t_data).to(torch.float32).to("cuda")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值