Pysyft学习笔记01,开始

1.1安装

  • Install Python 3.6 or higher
  • Install PyTorch 1.4
  • pip install syft[udacity]

1.2安装检查

# 运行这个cell看看是否工作正常
import sys

import torch
from torch.nn import Parameter
import torch.nn as nn
import torch.nn.functional as F

import syft as sy
hook = sy.TorchHook(torch)

torch.tensor([1,2,3,4,5])

2.1开始

hook = sy.TorchHook(torch)

        虚拟工人

bob = sy.VirtualWorker(hook, id="bob")

        张量

x = torch.tensor([1,2,3,4,5])
y = torch.tensor([1,1,1,1,1])

        张量的发送

x_ptr = x.send(bob)
y_ptr = y.send(bob)

注意一下。当我们调用 x.send(bob)时,它返回了一个称为x_ptr的新对象。这是我们第一个指向张量的指针。张量的指针本身实际上并保存数据。相反,它们仅包含有关存储在另一台机器上的张量(带有数据)的元数据。这些张量的目的是为我们提供一个直观的API,以告诉其他机器使用该张量来计算函数。

        指针可以直接加

z = x_ptr + x_ptr

指针有两个主要属性:

  • x_ptr.location : bob, location(位置),对指针指向的位置的引用
  • x_ptr.id_at_location : <random integer>, 张量存储在位置的id

它们以以下格式打印: <id_at_location>@<location>

还有其他更通用的属性:

  • x_ptr.id : <random integer>, 指针张量的ID,它是随机分配的
  • x_ptr.owner : "me", 拥有指针张量的工作机,这里是本地机器,名为“me”(我)

        设置本地

me = sy.local_worker

        设置指针归属

me == x_ptr.owner

最后,就像我们可以在张量上调用 .send()一样,我们可以在指向张量的指针上调用.get()来恢复它!

x_ptr.get()
y_ptr.get()

此时的bob._objects

如您所见,Bob不再具有张量!他们已经搬回我们的机器了!

        远程操作

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值