A library for answering questions using data you cannot see

Overview


PySyft
A library for computing on data
you do not own and cannot see



PySyft is a Python library for secure and private Deep Learning. PySyft decouples private data from model training, using Federated Learning, Differential Privacy, and Encrypted Computation (like Multi-Party Computation (MPC) and Homomorphic Encryption (HE) within the main Deep Learning frameworks like PyTorch and TensorFlow. Join the movement on Slack.

FAQ 0.2.x ➡️ 0.3.x

We have compiled a list of FAQs relating to the change from 0.2.x to 0.3.x+ here.

Important note about PySyft 0.2.x: The PySyft 0.2.x codebase is now in its own branch here, but OpenMined will not offer official support for this version range. If you're getting started with PySyft for the first time, please ignore this message and read on!

PySyft in Detail

A more detailed explanation of PySyft can be found in the white paper on Arxiv.

PySyft has also been explained in videos on YouTube:

Pre-Installation

PySyft is available on PyPI and Conda.

We recommend that you install PySyft within a virtual environment like Conda, due to its ease of use. If you are using Windows, we suggest installing Anaconda and using the Anaconda Prompt to work from the command line.

$ conda create -n pysyft python=3.8
$ conda activate pysyft
$ conda install jupyter notebook

Version Support

We support Linux, MacOS and Windows and the following Python and Torch versions.

Python Torch 1.4 Torch 1.5 Torch 1.6 Torch 1.7
3.6
3.7
3.8
3.9 🔜 🔜 🔜 🔜

Installation

Pip

$ pip install syft

This will auto-install PyTorch and other dependencies as required, to run the examples and tutorials. For more information on building from source see the contribution guide here.

Documentation

The latest official documentation is hosted here: https://pysyft.readthedocs.io/

Duet Examples

All the examples can be played with by launching Jupyter Notebook and navigating to the examples/duet folder.

$ jupyter notebook

WebRTC Signaling Server

To facilitate peer-to-peer connections through firewalls we utilise WebRTC and a signaling server. After connection, no traffic is sent to this server.

If you want to run your own signaling server simply run the command:

$ syft-network

Then update your duet notebooks to use the new network_url=http://localhost:5000

Try out the Tutorials

A comprehensive list of Duet Examples can be found here

These tutorials cover how to operate common network types over the Duet API.

High-level Architecture

Start Contributing

The guide for contributors can be found here. It covers all that you need to know to start contributing code to PySyft today.

Also, join the rapidly growing community of 7000+ on Slack. The slack community is very friendly and great about quickly answering questions about the use and development of PySyft!

Troubleshooting

The latest version of PySyft is 0.3.0 however this software is still Beta. If you find a bug please file it in the GitHub issues.

Organizational Contributions

We are very grateful for contributions to PySyft from the following organizations!

Udacity coMind Arkhn
GENBU AI Bitdefender

Support

For support in using this library, please join the #lib_pysyft Slack channel. Click here to join our Slack community!

Disclaimer

This software is in early beta. Use at your own risk.

License

Apache License 2.0 FOSSA Status

Description

Most software libraries let you compute over the information you own and see inside of machines you control. However, this means that you cannot compute on information without first obtaining (at least partial) ownership of that information. It also means that you cannot compute using machines without first obtaining control over those machines. This is very limiting to human collaboration in all areas of life and systematically drives the centralization of data, because you cannot work with a bunch of data without first putting it all in one (central) place.

The Syft ecosystem seeks to change this system, allowing you to write software which can compute over information you do not own on machines you do not have (general) control over. This not only includes servers in the cloud, but also personal desktops, laptops, mobile phones, websites, and edge devices. Wherever your data wants to live in your ownership, the Syft ecosystem exists to help keep it there while allowing it to be used for computation.

This library is the centerpiece of the Syft ecosystem. It has two primary purposes. You can either use PySyft to:

  1. Dynamic: Directly compute over data you cannot see.
  2. Static: Create static graphs of computation which can be deployed/scaled at a later date on different compute.

The Syft ecosystem includes libraries which allow for communication with and computation over a variety of runtimes:

  • KotlinSyft (Android)
  • SwiftSyft (iOS)
  • syft.js (Web & Mobile)
  • PySyft (Python)

However, the Syft ecosystem only focuses on consistent object serialization/deserialization, core abstractions, and algorithm design/execution across these languages. These libraries alone will not connect you with data in the real world. The Syft ecosystem is supported by the Grid ecosystem, which focuses on the deployment, scalability, and other additional concerns around running real-world systems to compute over and process data (such as data compliance web applications).

Syft is the library that defines objects, abstractions, and algorithms. Grid is the platform which lets you deploy them within a real institution (or on the open internet, but we don't yet recommend this). The Grid ecosystem includes:

  • GridNetwork - think of this like DNS for private data. It helps you find remote data assets so that you can compute on them.
  • PyGrid - This is the gateway to an organization's data, responsible for permissions, load balancing, and governance.
  • GridNode - This is an individual node within an organization's data center, running executions requested by external parties.
  • GridMonitor - This is a UI which allows an institution to introspect and control their PyGrid node and the GridNodes it manages.

Want to Use PySyft?

If you would like to become a user of PySyft, please progress to our User Documentation.

Want to Develop PySyft?

If you would like to become a developer of PySyft, please see our Contributor Documentation. This documentation will help you set up your development environment, give you a roadmap for learning the codebase, and help you find your first project to contribute.

Note

This project has been set up using PyScaffold. For details and usage information on PyScaffold see https://pyscaffold.org/.

Comments
  • REFACTOR: Serde

    REFACTOR: Serde

    Overview

    I would like to propose that we establish official standards for Serde in a way that's semi-agnostic to language. I've noticed a good many inconsistencies along the way of making my own version of Serde for syft.js. I'll mention them here as best as I can remember, but I will consider this issue to be a "catch-all" epic for all related Serde issues. This document will be a living document and will avoid problems that are related to language incompatibility (i.e. Javascript doesn't have a concept of Tuple, Dict, etc.).

    Proposed Changes

    1. Remove msg_type from all Message classes This is also being discussed here: https://github.com/OpenMined/PySyft/issues/2649. I would also advocate that if we remove the msg_type field from the Message classes that we should also consider removing part or all of the codes.py file as it will no longer be needed. Addressed in https://github.com/OpenMined/PySyft/pull/2687

    2. Eliminate parentheses clouding There are many times where parentheses are added somewhat randomly. In reality, they are not random, but rather a false attempt to create a Tuple. I've noticed many times where using () to create a Tuple inside of an existing set of parens fails to simplify. This leads to very confusing circumstances like the simplification of an Operation: (31, (1, ((6, CONTENT, OF, TUPLE)))) where the third opening paren is redundant. I've also found that this is usually resolved when using tuple() to create a Tuple instead of using parens (()).

    3. Choose between using a List or a Tuple consistently I've seen examples like in plan.State you have the state_ids being stored as a List, while in plan.Procedure you have arg_ids and return_ids being stored as a Tuple. Why? I'd say we should decide on using either the List or the Tuple for every circumstance unless the use-case is overwhelmingly undesired. My vote is that we use the Tuple because immutability will allow us to better find type errors in PySyft. You don't get this luxury with a List.

      Skipping number 4 for now since we can use the strategy presented by @iamtrask below within syft.js

    4. ~~Cut down on the amount of classes we're using~~ ~~There are two ways to look at this problem: we can either create a class for everything or we can create a series of high-level generic classes that allow for their internal state to change. An example of this dichotomy is in the Message classes, where we have 1 parent class (Message) which is never used except as a parent to other classes (Operation, ObjectMessage, ObjectRequestMessage, etc.). While this is very convenient in Python to have a new class for every situation, I wonder if this only serves to complicate the work of other projects like syft.js and AndroidWorker.~~

      ~~With every class that's added, as sub-library maintainers, we have to stub out the new class, integrate it, and properly test it. Needless to say, this is a lot of work. However, if we use high-level generic classes only, we can handle changes in "type" with an if statement internally within the class. While this may contradict a bit with the first point I made, I'll use the Message class as an example: the msg_type does tell us which type of Message is being referred to. In syft.js, I then have to create, integrate, and test 8 other classes that have been created as sub-classes. If instead we left the msg_type field in the high-level Message class, now all I need to do is have an if statement in my Message class that tells me how to handle it. That's a lot of time saved for those of us writing PySyft ports into other languages. 😄~~

    5. Migrate to Proto Speaking of version compatibility, we at the syft.js team have created Proto to mitigate a lot of the nastiness of maintaining compatibility between versions of each of the various projects. I suggest we migrate to using Proto on PySyft as soon as possible before it gets harder to do so. We have an unmerged pull request that seeks to do this: https://github.com/OpenMined/PySyft/pull/2439

    6. Ignore Protobuf (for now) There's a merged RFC (https://github.com/OpenMined/rfcs/blob/master/20190822-standardizing-pysyft-protocol.md) that establishes that we should migrate away from using MsgPack and instead use Google's Protobuf. Personally, I'm a fan of this, but I think it's somewhat of a distraction for now. In syft.js, we're not actually using any compression libraries (including MsgPack) and I don't intend to add any in the near future because of... well, file size. What we gain in compression is almost negligible compared to what we lose in file size with an added dependency. Granted, this is only a problem for syft.js since it's in a browser, it has to be downloaded as a web request.

      Regardless of syft.js' status on this, we have no dedicated plans for migrating away from MsgPack to Protobuf. However, there are current, real-world concerns that exist with Serde. In my opinion, migrating to Protobuf is a luxury, making Serde consistent is a necessity.

    7. Implement some sort of way to have sample simplification strings auto-generated and tests run upon version committing to dev This one is quite complicated. However, there's no way currently for us to know when syft.js is "out of date" with PySyft (and vice-versa). It would be quite nice to have some sort of script that could be run by our CI cycle that generates new Serde simplified strings, and re-runs the syft-helpers.js CI cycle with the new data. This might be quite difficult, but at some point, it should help tremendously to anticipate possible simplify/detail bugs before our users notice.


    I'll consider this issue somewhat of a moving target. But with that said, I don't feel confident in releasing syft.js to the public without establishing some sort of consistency in Serde on PySyft. We're in need of some major changes here to avoid conflicts between various syft libraries in the future.

    Help Wanted :wave: Type: Epic :call_me_hand: Type: Code Quality :100: 
    opened by cereallarceny 25
  • Translate our tutorials to your native language!

    Translate our tutorials to your native language!

    At present, our tutorial notebook series is only available in English, but it would be very desirable for people to be able to learn PySyft in their native language

    For this PR, copy the current notebooks and translate the inline text to a language you know, placing the notebooks in a folder within the "tutorials" folder.

    https://github.com/OpenMined/PySyft/tree/master/examples/tutorials

    Rules of Thumb:

    • Only translate English which is in the notebook or generated from code in the notebook. Any English which is coming from the PySyft library itself (such as error messages) should remain in English.
    Good first issue :mortar_board: Type: New Feature :heavy_plus_sign: Status: Stale :bread: 
    opened by iamtrask 23
  • TypeError: object of type 'NoneType' has no len()

    TypeError: object of type 'NoneType' has no len()

    Describe the bug TypeError: object of type 'NoneType' has no len()

    My code

    x_train = torch.tensor(train_x)
    y_train = torch.tensor(train_y)
    
    import syft as sy
    # Hook that extends the Pytorch library to enable all computations with pointers of tensors sent to other workers
    hook = sy.TorchHook(torch)
    
    # Creating 2 virtual workers
    bob = sy.VirtualWorker(hook, id="bob")
    anne = sy.VirtualWorker(hook, id="anne")
    #datasets=[]
    # threshold indexes for dataset split (one half for Bob, other half for Anne)
    train_idx = int(len(x_train)/2)
    
    
    # Sending toy datasets to virtual workers
    #data_bob = x_train[:train_idx].send(bob)
    #data_anne = x_train[train_idx:].send(anne)
    #target_bob = y_train[:train_idx].send(bob)
    #target_anne = y_train[train_idx:].send(anne)
    
    #bob_train_dataset = sy.BaseDataset(data_bob , target_bob).send(bob)
    #anne_train_dataset = sy.BaseDataset(data_anne, target_anne).send(anne)
    
    #datasets = [(data_bob,target_bob),(data_anne,target_anne)]
    #federated_train_dataset = sy.FederatedDataset([(data_bob,target_bob), (data_anne, target_anne)])
    #bob_train_dataset = sy.BaseDataset(data_bob, target_bob).send(bob)
    #anne_train_dataset = sy.BaseDataset(data_anne, target_anne).send(anne)
    # Creating federated datasets, an extension of Pytorch TensorDataset class
    #federated_train_dataset = sy.FederatedDataset([bob_train_dataset, anne_train_dataset])
    
    
    # Creating federated dataloaders, an extension of Pytorch DataLoader class
    #federated_train_loader = sy.FederatedDataLoader(federated_train_dataset, shuffle=True, batch_size=64)
    
    
    # Hook that extends the Pytorch library to enable all computations with pointers of tensors sent to other workers
    #hook = sy.TorchHook(torch)
    
    # Creating 2 virtual workers
    #bob = sy.VirtualWorker(hook, id="bob")
    #anne = sy.VirtualWorker(hook, id="anne")
    
    # threshold indexes for dataset split (one half for Bob, other half for Anne)
    #train_idx = int(len(train_labels)/2)
    
    # Sending toy datasets to virtual workers
    bob_train_dataset = sy.BaseDataset(x_train[:train_idx], y_train[:train_idx]).send(bob)
    anne_train_dataset = sy.BaseDataset(x_train[train_idx:], y_train[train_idx:]).send(anne)
    
    # Creating federated datasets, an extension of Pytorch TensorDataset class
    federated_train_dataset = sy.FederatedDataset([bob_train_dataset, anne_train_dataset])
    # Creating federated dataloaders, an extension of Pytorch DataLoader class
    federated_train_loader = sy.FederatedDataLoader(federated_train_dataset, shuffle=True, batch_size=64)
    
    class GRUNet(nn.Module):
        def __init__(self, input_dim, hidden_dim, output_dim, n_layers, drop_prob=0.2):
            super(GRUNet, self).__init__()
            self.hidden_dim = hidden_dim
            self.n_layers = n_layers
            
            self.gru = nn.GRU(input_dim, hidden_dim, n_layers, batch_first=True, dropout=drop_prob)
            self.fc = nn.Linear(hidden_dim, output_dim)
            self.relu = nn.ReLU()
            
        def forward(self, x, h):
            out, h = self.gru(x, h)
            out = self.fc(self.relu(out[:,-1]))
            return out, h
        
        def init_hidden(self, batch_size):
            weight = next(self.parameters()).data
            hidden = weight.new(self.n_layers, batch_size, self.hidden_dim).zero_().to(device)
            return hidden
    
    class LSTMNet(nn.Module):
        def __init__(self, input_dim, hidden_dim, output_dim, n_layers, drop_prob=0.2):
            super(LSTMNet, self).__init__()
            self.hidden_dim = hidden_dim
            self.n_layers = n_layers
            
            self.lstm = nn.LSTM(input_dim, hidden_dim, n_layers, batch_first=True, dropout=drop_prob)
            self.fc = nn.Linear(hidden_dim, output_dim)
            self.relu = nn.ReLU()
            
        def forward(self, x, h):
            out, h = self.lstm(x, h)
            out = self.fc(self.relu(out[:,-1]))
            return out, h
        
        def init_hidden(self, batch_size):
            weight = next(self.parameters()).data
            hidden = (weight.new(self.n_layers, batch_size, self.hidden_dim).zero_().to(device),
                      weight.new(self.n_layers, batch_size, self.hidden_dim).zero_().to(device))
            return hidden
    
    batch_size = 64
    def train(federated_train_loader, learn_rate, hidden_dim=256, EPOCHS=5, model_type="GRU"):
        
        # Setting common hyperparameters
        input_dim = next(iter(federated_train_loader))[0].shape[2]
        output_dim = 1
        n_layers = 2
        # Instantiating the models
        if model_type == "GRU":
            model = GRUNet(input_dim, hidden_dim, output_dim, n_layers)
        else:
            model = LSTMNet(input_dim, hidden_dim, output_dim, n_layers)
        model.to(device)
        
        # Defining loss function and optimizer
        criterion = nn.MSELoss()
        optimizer = torch.optim.SGD(model.parameters(), lr=learn_rate)
        
        model.train()
        print("Starting Training of {} model".format(model_type))
        epoch_times = []
        # Start training loop
        for epoch in range(1,EPOCHS+1):
            start_time = time.clock()
            h = model.init_hidden(batch_size)
            avg_loss = 0.
            counter = 0
            for x, label in federated_train_loader:
                worker = x.location
                #h = torch.Tensor(np.zeros((batch_size))).send(worker)
                model.send(worker)
                counter += 1
                if model_type == "GRU":
                    h = h.data
                else:
                    h = tuple([e.data for e in h])
                model.zero_grad()
               
                
                out, h = model(x.to(device).float(), h)
                loss = criterion(out, label.to(device).float())
                loss.backward()
                optimizer.step()
                avg_loss += loss.item()
                if counter%200 == 0:
                    print("Epoch {}......Step: {}/{}....... Average Loss for Epoch: {}".format(epoch, counter, len(train_loader), avg_loss/counter))
            current_time = time.clock()
            print("Epoch {}/{} Done, Total Loss: {}".format(epoch, EPOCHS, avg_loss/len(train_loader)))
            print("Time Elapsed for Epoch: {} seconds".format(str(current_time-start_time)))
            epoch_times.append(current_time-start_time)
        print("Total Training Time: {} seconds".format(str(sum(epoch_times))))
        return model
    

    Desktop (please complete the following information):

    • OS: Ubuntu
    • Version : 16.04

    Additional context Starting Training of GRU model


    TypeError Traceback (most recent call last) in () 1 lr = 0.001 2 #batch_size = 64 ----> 3 gru_model = train(federated_train_loader, lr, model_type="GRU")

    in train(federated_train_loader, learn_rate, hidden_dim, EPOCHS, model_type) 38 39 ---> 40 out, h = model(x.to(device).float(), h) 41 loss = criterion(out, label.to(device).float()) 42 loss.backward()

    Actually, I do not know what happen on my dataset?

    opened by niklausliu 23
  • GREAT FIRST PROJECT: Make PySyft FAST!!!!

    GREAT FIRST PROJECT: Make PySyft FAST!!!!

    This issue is probably the BEST beginner issue because it doesn't require any knowledge outside of basic python. The goal is just to take this demo

    https://colab.sandbox.google.com/drive/17upxCYJmJ6Zoxv0KjiJ1ZbchlJybsfhs#scrollTo=BXp7uO9wi1qo

    and make it as fast as possible by modifying the PySyft codebase (READ: it's not necessarily about modifying the demo code itself... more about making the library generically faster so that this demo runs faster)

    This is also a group project - meaning you can feel free to jump on at any time. Just comment with your interest below!!!

    Also - make sure you join the #team_pysyft channel in our slack slack.openmined.org

    Edit: If you're new to optimizing python code - here's a good tutorial

    Type: Epic :call_me_hand: Good first issue :mortar_board: 
    opened by iamtrask 23
  • #252 Inline Documentation Consistency

    #252 Inline Documentation Consistency

    This is one of my first pull requests. So Please feel free to tell me where I am wrong; I would love to get some feedback

    I followed the NumPy Style on inline documentation. http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html

    It's a bit rough around the edges but let me know if I am on the right track

    opened by CT83 23
  • GSoC Project: Combine Federated Learning & SplitNN APIs

    GSoC Project: Combine Federated Learning & SplitNN APIs

    Mentor: Adam J Hall

    Federated Learning and SpitNN are both methods for distributing the training of a neural network across multiple machines for the sake of privacy. However, they have different tradeoffs. At present, one can either choose to use one algorithm or the other, but not a combination of both. In this project, we seek to remedy this by creatively combining them in a clean, cohesive API. More generally, we also want to allow for greater flexibility/ granularity in how the splitnn can be implemented/ combined with other techniques or vertically distributed data.

    Required Skills:

    Knowledge of PyTorch and Deep Learning Familiarity (or willingness to become familiar) with PySyft Ability to understand Federated Learning Ability to understand SplitNN

    Difficulty: Medium

    While the project itself is not complex (neither Federated Learning or SplitNN are hard to understand), this project does require some significant API work within PySyft (which is, itself, a complex library).

    Useful Links;

    PyTorch - https://pytorch.org/blog PySyft - https://github.com/OpenMined/PySyft PyGrid - https://github.com/OpenMined/PyGrid Google Summer of Code - https://summerofcode.withgoogle.com Intro to SplitNN - https://medium.com/analytics-vidhya/split-neural-networks-on-pysyft-ed2abf6385c0

    Please comment below if you'd like to be considered for this.

    Status: Stale :bread: 
    opened by H4LL 21
  • Move serde type constants to a separate file

    Move serde type constants to a separate file

    Hi,

    While working on js worker for syft I've noticed that syft serialization protocol is quite unstable because type codes in simplified objects (e.g. 5 in 'string' => (5, (b'string',))) are just indices in detailers list dynamically generated by serde._generate_simplifiers_and_detailers. Any insertion or deletion to MAP_NATIVE_SIMPLIFIERS_AND_DETAILERS, MAP_TORCH_SIMPLIFIERS_AND_DETAILERS, OBJ_SIMPLIFIER_AND_DETAILERS, EXCEPTION_SIMPLIFIER_AND_DETAILERS (like https://github.com/OpenMined/PySyft/pull/2436) may shift indices and hence change some type codes. This will be a problem for other projects that want to communicate using syft serialization protocol like Android Worker and syft.js. For example, type constants defined in Android Worker are already out of date.

    I've discussed this concern with @cereallarceny and he suggested that type constants can be moved to a file in separate repository that can be used by PySyft, syft.js, Android Worker and any other projects. Such repository could be also good place to keep serialization protocol documentation (if any).

    This PR is to start discussion whether such approach is useful and refine details. Changes here:

    • constants are moved to proto.json file
    • serde is updated to use constants from there (based on class name)
    • unit tests updated

    Open questions:

    • JSON file format and types naming, e.g. maybe it makes sense to drop module name, at least for "syft.*" classes?
    • if proto.json file will be in a separate repo, how it should be linked in other repos, including PySyft? I'd suggest using git submodule, but people often don't like that
    • Approach to versioning the proto.json file?

    Thanks

    opened by vvmnnnkv 21
  • pip install syft - ZSTD errors

    pip install syft - ZSTD errors

    Received lots of ZSTD errors on OSX Mac Sierra when installing 'pip install syft' within Anaconda. Tried the various workarounds in documentation and also tried installing from source - still had the same errors.

    Running 'conda install gcc' fixed the issue for me. Which changed GCC in my conda environment from:

    gcc --version Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 9.0.0 (clang-900.0.39.2) Target: x86_64-apple-darwin16.7.0 Thread model: posix

    To: gcc --version gcc (GCC) 4.8.5

    Perhaps add this work-around to documentation if it will help others.

    opened by phillipeloher 21
  • Adam causes errors in training loop

    Adam causes errors in training loop

    [Related to #1909]

    I tracked down the error to 'optimizer = optim.Adam(model.parameters(), lr=1e-3)' in my code, 'optimizer = optim.SGD(model.parameters(), lr=1e-3)' works.

    My guess is that this is related to me using PyTorch 1.0 .

    The code can be found in https://github.com/2fasc/Distributed_Malaria/blob/master/src/federated_training.py

    Traceback (most recent call last):
      File "/home/fasc/Documents/Distributed_Malaria/src/federated_training.py", line 143, in <module>
        simple_federated_model()
      File "/home/fasc/Documents/Distributed_Malaria/src/federated_training.py", line 66, in simple_federated_model
        federated=True,
      File "/home/fasc/Documents/Distributed_Malaria/src/auxiliaries.py", line 111, in train
        optimizer.step()
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/torch/optim/adam.py", line 94, in step
        exp_avg_sq.mul_(beta2).addcmul_(1 - beta2, grad, grad)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/frameworks/torch/hook.py", line 650, in overloaded_native_method
        response = method(*new_args, **new_kwargs)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/frameworks/torch/hook.py", line 486, in overloaded_pointer_method
        response = owner.send_command(location, command)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/base.py", line 364, in send_command
        _ = self.send_msg(MSGTYPE.CMD, message, location=recipient)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/base.py", line 198, in send_msg
        bin_response = self._send_msg(bin_message, location)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/virtual.py", line 6, in _send_msg
        return location._recv_msg(message)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/virtual.py", line 9, in _recv_msg
        return self.recv_msg(message)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/base.py", line 229, in recv_msg
        response = self._message_router[msg_type](contents)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/workers/base.py", line 316, in execute_command
        getattr(_self, command_name)(*args, **kwargs)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/frameworks/torch/hook.py", line 636, in overloaded_native_method
        raise route_method_exception(e, self, args, kwargs)
      File "/home/fasc/miniconda3/envs/malaria/lib/python3.6/site-packages/syft/frameworks/torch/hook.py", line 630, in overloaded_native_method
        response = method(*args, **kwargs)
    TypeError: addcmul_() takes 2 positional arguments but 3 were given
    
    Type: Bug :bug: 
    opened by schimpffabian 21
  • Type annotations for pysyft

    Type annotations for pysyft

    Issue Template

    Context

    User Story:

    As a Developer of PySyft
    I would like to know what the type of various parameters are when looking at the code. Since python now has a typing module, we should add type annotations to track the type of various parameters to ease development

    Expected Behavior

    Every method has correct type annotations and running mypy on the repository passes

    Current Behavior

    no methods have type annotations

    Help Wanted :wave: Good first issue :mortar_board: 
    opened by robert-wagner 21
  • Fix all warnings in documentation build

    Fix all warnings in documentation build

    When I run

    python setup.py docs
    

    in the syft_0.3.0 branch I currently get 92 warnings. My build finishes with:

    common.UID, syft.core.common.uid.UID
    /Users/atrask/Dropbox/Laboratory/openmined/PySyft/PySyft/docs/../src/syft/lib/python/primitive.py:docstring of syft.lib.python.primitive.PyPrimitive.__init__:: WARNING: more than one target found for cross-reference 'UID': syft.core.common.UID, syft.core.common.uid.UID
    /Users/atrask/Dropbox/Laboratory/openmined/PySyft/PySyft/docs/../src/syft/lib/python/primitive.py:docstring of syft.lib.python.primitive.PyPrimitive.id:: WARNING: more than one target found for cross-reference 'UID': syft.core.common.UID, syft.core.common.uid.UID
    generating indices...  genindex py-modindexdone
    highlighting module code... [100%] torch.nn.parameter
    writing additional pages...  searchdone
    copying static files... ... done
    copying extra files... done
    dumping search index in English (code: en)... done
    dumping object inventory... done
    build succeeded, 92 warnings.
    
    The HTML pages are in build/sphinx/html.
    

    To solve this issue, fix all the warnings!

    Type: Improvement :chart_with_upwards_trend: Type: Documentation :books: 0.5 
    opened by iamtrask 20
  • Oblivious Integration

    Oblivious Integration

    Description

    Please include a summary of the change, the motivation, and any additional context that will help others understand your PR. If it closes one or more open issues, please tag them as described here.

    Affected Dependencies

    List any dependencies that are required for this change.

    How has this been tested?

    • Describe the tests that you ran to verify your changes.
    • Provide instructions so we can reproduce.
    • List any relevant details for your test configuration.

    Checklist

    opened by rasswanth-s 1
  • Bump json5 from 1.0.1 to 1.0.2 in /packages/grid/frontend

    Bump json5 from 1.0.1 to 1.0.2 in /packages/grid/frontend

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    javascript dependencies 
    opened by dependabot[bot] 0
  • [WIP] mask password in vm

    [WIP] mask password in vm

    Description

    Fixes #7034 Added code which will mask password in vm login

    Affected Dependencies

    N/A

    How has this been tested?

    • not yet tested

    Checklist

    opened by YBCS 1
  • [WIP] Fix JSON5 issue

    [WIP] Fix JSON5 issue

    Description

    Please include a summary of the change, the motivation, and any additional context that will help others understand your PR. If it closes one or more open issues, please tag them as described here.

    Affected Dependencies

    List any dependencies that are required for this change.

    How has this been tested?

    • Describe the tests that you ran to verify your changes.
    • Provide instructions so we can reproduce.
    • List any relevant details for your test configuration.

    Checklist

    opened by madhavajay 1
  • Fail to sign in a domain again after restarting computer

    Fail to sign in a domain again after restarting computer

    Description

    I was working on a jupyter notebook where I constructed a domain and sign in using alice_domain = sy.login(email="[[email protected]](mailto:[email protected])", password="changethis", port=8081). Then, I got some problems and restart the computer, making the alice_domain variable disappear. After that, I opened a new notebook and tried to sign in the domain again using the same line of code alice_domain = sy.login(email="[[email protected]](mailto:[email protected])", password="changethis", port=8081). However, I got the error like in the picture Untitled

    How to Reproduce

    1. Open a notebook
    2. Launch a domain using !hagrid launch alice domain to docker:8081 --tag=latest --dev
    3. Log in a domain: alice_domain = sy.login([email="[email protected]](mailto:email%3D%[email protected])", password="changethis", port=8081) which outputs Logging into alice... done!
    4. Checking the domain’s health: Untitled2
    5. Close the notebook, close VSCode, restart the computer, open the notebook again, log in again using alice_domain = sy.login([email="[email protected]](mailto:email%3D%[email protected])", password="changethis", port=8081) will produce the error
    6. Now if I check the domain health, I will get Untitled3

    System Information

    • OS: Ubuntu
    • OS Version: 20.04
    • Language Version: Python 3.9.13, PySyft 0.7.0-beta.62
    Type: Bug :bug: 
    opened by khoaguin 0
  •  AttributeError: module ‘syft’ has no attribute ‘FederatedDataLoader’

    AttributeError: module ‘syft’ has no attribute ‘FederatedDataLoader’

    Hi,

    I am trying to use syft for federated learning. I used below commands to import syft and define the virtual machines.

    import syft as sy

    alice = sy.VirtualMachine(name="alice") bob = sy.VirtualMachine(name= "bob") ken= sy.VirtualMachine(name="ken") ryu = sy.VirtualMachine(name= "ryu") tim= sy.VirtualMachine(name="tim")

    I have a dateset named “train”.

    When I try to define my trainloader, I got an error as below:

    train_loader_1 = sy.FederatedDataLoader(train.federate((bob, alice, ken, ryu , tim)), batch_size=120, shuffle=False)

    AttributeError: module 'syft' has no attribute 'FederatedDataLoader

    Would you please help me on how to define my federateddataloader?

    Note:

    torch version: 1.10.0+cpu syft version 0.6.0

    Best wishes, Ömer

    Type: Bug :bug: 
    opened by omerfaruktuna 2
Releases(0.6.0)
  • 0.6.0(Dec 1, 2021)

    What's Changed

    • Test network utility by @vsquareg in https://github.com/OpenMined/PySyft/pull/5609
    • Fixing Pillow 8.3.0 breaking CI by @madhavajay in https://github.com/OpenMined/PySyft/pull/5755
    • Serialization of ring_size in ShareTensor, ReplicatedSharedTensor by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5753
    • Modified deserialization to use share config. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5763
    • Iamtrask/ch135/sample story by @iamtrask in https://github.com/OpenMined/PySyft/pull/5791
    • [WIP] pip install hagrid (and it's deps automagically) by @iamtrask in https://github.com/OpenMined/PySyft/pull/5777
    • [sympc] Changed type of nr_parties to int32 from bytes by @hershd23 in https://github.com/OpenMined/PySyft/pull/5804
    • Fixed linting errror by unpacking tuple correctly and adding type hint by @IshanMi in https://github.com/OpenMined/PySyft/pull/5825
    • [WIP] Store DP Tensor in object-store by @Kritikalcoder in https://github.com/OpenMined/PySyft/pull/5792
    • Flake 8 fix 0.6.0 by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5821
    • Remove --experimental_allow_proto3_optional and force upgrade protobuf>=3.15 by @rohithpudari in https://github.com/OpenMined/PySyft/pull/5649
    • Removed old original pytorch example references and updated notebooks by @madhavajay in https://github.com/OpenMined/PySyft/pull/5835
    • Gym protobuf by @madhavajay in https://github.com/OpenMined/PySyft/pull/5836
    • [W.I.P.] Fixing linting errors in Autograd by @IshanMi in https://github.com/OpenMined/PySyft/pull/5832
    • Ch488 HAGrid goes to sk00le and learns grammar by @madhavajay in https://github.com/OpenMined/PySyft/pull/5828
    • fixing mypy for hagrid by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5829
    • fixing mypy for grid by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5831
    • Added PublishScalarService to Domain by @IshanMi in https://github.com/OpenMined/PySyft/pull/5842
    • Fixed issue causing the tool to break because of MyPy change by @madhavajay in https://github.com/OpenMined/PySyft/pull/5843
    • Getting MyPy checking for Syft working by @madhavajay in https://github.com/OpenMined/PySyft/pull/5845
    • Updating tox fix by @madhavajay in https://github.com/OpenMined/PySyft/pull/5846
    • Ch291 syft by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5841
    • Madhava/hot fix backend issue by @madhavajay in https://github.com/OpenMined/PySyft/pull/5847
    • Madhava/ch589 hagrid polish by @madhavajay in https://github.com/OpenMined/PySyft/pull/5849
    • Add Tensor send support for ADP PyGrid demo by @IshanMi in https://github.com/OpenMined/PySyft/pull/5853
    • Fixed issue where datasets endpoint was using old attribute name by @madhavajay in https://github.com/OpenMined/PySyft/pull/5854
    • First 0.6.0 Stack Integration Test by @madhavajay in https://github.com/OpenMined/PySyft/pull/5855
    • Added version to stack docker images by @madhavajay in https://github.com/OpenMined/PySyft/pull/5856
    • HAGrid ssh keygen by @madhavajay in https://github.com/OpenMined/PySyft/pull/5858
    • Windows HAGrid README by @madhavajay in https://github.com/OpenMined/PySyft/pull/5859
    • [W.I.P.] Add experimental notebook for ADP Demo by @IshanMi in https://github.com/OpenMined/PySyft/pull/5862
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5863
    • Hotfix for Deps by @madhavajay in https://github.com/OpenMined/PySyft/pull/5867
    • flynt check back by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5865
    • HAGrid Wheel Build by @madhavajay in https://github.com/OpenMined/PySyft/pull/5871
    • Sympc tensor grid by @gmuraru in https://github.com/OpenMined/PySyft/pull/5822
    • Notebook design experience by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5823
    • Merge into dev by @iamtrask in https://github.com/OpenMined/PySyft/pull/5875
    • Continuing work from PR #5734 by @iamtrask in https://github.com/OpenMined/PySyft/pull/5737
    • Codebase fixes to get the Friday trade_demo working by @iamtrask in https://github.com/OpenMined/PySyft/pull/5876
    • Serde for primitive types by @iamtrask in https://github.com/OpenMined/PySyft/pull/5879
    • Add support for hagrid shorthand commands by @iamtrask in https://github.com/OpenMined/PySyft/pull/5878
    • Hot Fix for unboxed PyPrimitive upcasting by @madhavajay in https://github.com/OpenMined/PySyft/pull/5884
    • mypy fix for syft 🍒 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5885
    • Fixed weird issue with test_known_child_nodes failing in CI by @madhavajay in https://github.com/OpenMined/PySyft/pull/5888
    • Fixing dependencies with security warnings from dependabot by @madhavajay in https://github.com/OpenMined/PySyft/pull/5893
    • [SMPC] Add public operations and refactor some code by @gmuraru in https://github.com/OpenMined/PySyft/pull/5889
    • Bump next from 10.0.8 to 11.1.0 in /packages/grid/grid-ui by @dependabot in https://github.com/OpenMined/PySyft/pull/5906
    • Fixing problem with hagrid and tail by @madhavajay in https://github.com/OpenMined/PySyft/pull/5915
    • [PyGrid] Improve logging by @tcp in https://github.com/OpenMined/PySyft/pull/5880
    • [PyGrid] Set up pytest for grid tests by @tcp in https://github.com/OpenMined/PySyft/pull/5882
    • [WIP] Upgrade websockets for dependabot security alert by @madhavajay in https://github.com/OpenMined/PySyft/pull/5914
    • HAGrid VM Image by @madhavajay in https://github.com/OpenMined/PySyft/pull/5912
    • auto update cherry picked by @madhavajay in https://github.com/OpenMined/PySyft/pull/5919
    • Update Stable Branch by @madhavajay in https://github.com/OpenMined/PySyft/pull/5920
    • Azure Image Build and Quickstart Template by @madhavajay in https://github.com/OpenMined/PySyft/pull/5924
    • Add publish as forward method by @gmuraru in https://github.com/OpenMined/PySyft/pull/5929
    • [PyGrid] Users CRUD by @tcp in https://github.com/OpenMined/PySyft/pull/5883
    • HAGrid Improvements by @madhavajay in https://github.com/OpenMined/PySyft/pull/5936
    • Added log rotation cronjob by @madhavajay in https://github.com/OpenMined/PySyft/pull/5937
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5938
    • Split cron into redeploy by @madhavajay in https://github.com/OpenMined/PySyft/pull/5939
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5940
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5941
    • Make redeploy.sh only run once at a time by @madhavajay in https://github.com/OpenMined/PySyft/pull/5942
    • Update 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5943
    • Back to dev by @madhavajay in https://github.com/OpenMined/PySyft/pull/5947
    • Prepare for ADP+SMPC Demo branch Merge into dev by @iamtrask in https://github.com/OpenMined/PySyft/pull/5931
    • [WIP] Accountant allows downloads of published data by @Kritikalcoder in https://github.com/OpenMined/PySyft/pull/5793
    • feat: start UI e2e testing by @tcp in https://github.com/OpenMined/PySyft/pull/5932
    • I tried to sort out merge conflicts for https://github.com/OpenMined/PySyft/pull/5935 by @iamtrask in https://github.com/OpenMined/PySyft/pull/5949
    • Fixing docker image cache and adding stack tests to dev PRs by @madhavajay in https://github.com/OpenMined/PySyft/pull/5953
    • SimpleService and NodeRunnableMessageWithReply by @iamtrask in https://github.com/OpenMined/PySyft/pull/5954
    • fix: remove blank notebook by @tcp in https://github.com/OpenMined/PySyft/pull/5951
    • syft.register() and domain_client.request_budget() by @iamtrask in https://github.com/OpenMined/PySyft/pull/5955
    • Revert previous change I made which broke things because of new alemb… by @iamtrask in https://github.com/OpenMined/PySyft/pull/5956
    • deleted mitogen folder and strategy by @bayegaspard in https://github.com/OpenMined/PySyft/pull/5958
    • Dataset creation and discovery improvements by @iamtrask in https://github.com/OpenMined/PySyft/pull/5957
    • [WIP] Mock Notebooks for course 3 by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5961
    • Deploy node-specific interface (domain or network) by @tcp in https://github.com/OpenMined/PySyft/pull/5959
    • Fixing some Docker issues by @madhavajay in https://github.com/OpenMined/PySyft/pull/5965
    • MPCTensor : Numpy Hook Methods by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5963
    • Fixing broken torch tests due to changed handling of builtins and boxes by @madhavajay in https://github.com/OpenMined/PySyft/pull/5966
    • chore(deps): bump next from 11.1.0 to 11.1.1 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5950
    • chore(deps): bump axios from 0.21.1 to 0.21.2 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5972
    • Serde refactor remove interface by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5970
    • Absolufy imports and fixes by @madhavajay in https://github.com/OpenMined/PySyft/pull/5975
    • moving recursive serde into the decorator by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5973
    • Merging adp_dev into dev by @IshanMi in https://github.com/OpenMined/PySyft/pull/5978
    • Merge adp_dev into dev by @IshanMi in https://github.com/OpenMined/PySyft/pull/5979
    • IntermediateGammaTensor.repeat() by @iamtrask in https://github.com/OpenMined/PySyft/pull/5977
    • [WIP] IntermediateGammaTensor.sub by @iamtrask in https://github.com/OpenMined/PySyft/pull/5976
    • [WIP] Data Subject Annotation Wizard and related UX improvements by @iamtrask in https://github.com/OpenMined/PySyft/pull/5960
    • SMPC + AutoDP Integration Tests by @madhavajay in https://github.com/OpenMined/PySyft/pull/5981
    • Forgot the prestige 🎩 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5982
    • Madhava/update 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5983
    • Ci optimize path filter by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/5987
    • Modified Version Tests to pull request. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5988
    • SMPC -Numpy Ops by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5990
    • Add comparison operators for REPTs and SEPTs by @fiza11 in https://github.com/OpenMined/PySyft/pull/5986
    • [SMPC] Implemented matmul by @aanurraj in https://github.com/OpenMined/PySyft/pull/5993
    • Abstraction of MPCTensor for tensor pointer computation. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5971
    • Bump tmpl from 1.0.4 to 1.0.5 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5998
    • chore(deps): bump semver-regex from 3.1.2 to 3.1.3 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5992
    • Added support and tests to SingleEntityPhiTensor for all transform operators by @IshanMi in https://github.com/OpenMined/PySyft/pull/5995
    • Added .lock and .json to stack tests to include frontend package updates by @madhavajay in https://github.com/OpenMined/PySyft/pull/6001
    • Bump ansi-regex from 5.0.0 to 5.0.1 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/6000
    • Initial VPN support by @madhavajay in https://github.com/OpenMined/PySyft/pull/5997
    • Added support & tests for np operations (eq, ne, add, sub, repeat, pos) to S.E.P.T, R.E.P.T by @IshanMi in https://github.com/OpenMined/PySyft/pull/5948
    • [W.I.P.] Patch flaky SEPT tests on Windows by checking for dimension size by @IshanMi in https://github.com/OpenMined/PySyft/pull/6002
    • Adding ALL remaining ADP Operations for week 2 by @IshanMi in https://github.com/OpenMined/PySyft/pull/6005
    • Add support and tests for all transform operations for RowEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6003
    • Update / Fix roles by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6006
    • Fixed Inplace SQL Alchemy issue. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6010
    • Update README.md by @callezenwaka in https://github.com/OpenMined/PySyft/pull/5918
    • Ci docker layer cache setup by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6004
    • Replacing Global Variables in pytest files with fixtures by @IshanMi in https://github.com/OpenMined/PySyft/pull/6009
    • Create L5_Data_Scientist.ipynb by @pculliton in https://github.com/OpenMined/PySyft/pull/6027
    • 0.6.0 hagrid update by @madhavajay in https://github.com/OpenMined/PySyft/pull/6033
    • Released HAGrid==0.1.6 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6034
    • [SMPC]Generation of Beaver Triples by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5996
    • Kubernetes installation with helmcharts and tilt by @AutomationLife in https://github.com/OpenMined/PySyft/pull/5928
    • Docker Buildx Cache by @madhavajay in https://github.com/OpenMined/PySyft/pull/6039
    • Fixed issue with devspace dev command by @madhavajay in https://github.com/OpenMined/PySyft/pull/6038
    • Manual Docker Cache + Cleanup by @madhavajay in https://github.com/OpenMined/PySyft/pull/6040
    • Update the deploy node notebook for Course 3 by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6037
    • Making git repo url explicit by adding .git suffix by @madhavajay in https://github.com/OpenMined/PySyft/pull/6044
    • Tensor pointer abstraction. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6045
    • Fixes SMPC stack integration tests by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5974
    • Implement n_entities and unique_entities for SEPT, REPT, IGT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6035
    • Modified Crypto Store Code by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6048
    • SPDZ multiply code by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6049
    • VPN API by @madhavajay in https://github.com/OpenMined/PySyft/pull/6046
    • Private Multiplication Iteration four. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6050
    • Private mul iteration5 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6052
    • Private mul iteration6 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6053
    • Add round() to SEPT, REPT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6028
    • fix: update set-value to 4.0.0 by @tcp in https://github.com/OpenMined/PySyft/pull/6062
    • Fix: move set-value to 4.1.0 by @tcp in https://github.com/OpenMined/PySyft/pull/6063
    • [Engineering] - DO configures domain by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/5968
    • Implement Min() and Max() for SingleEntityPhiTensor by @IshanMi in https://github.com/OpenMined/PySyft/pull/6007
    • Fix race condition in trade demo test with getting requests approved by @madhavajay in https://github.com/OpenMined/PySyft/pull/6066
    • Add L3 notebook improvements by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6058
    • Add qualifier and arithmetic operations for SEPTs by @fiza11 in https://github.com/OpenMined/PySyft/pull/6013
    • Iteration 2 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6065
    • Add decomposition on the DS side by @gmuraru in https://github.com/OpenMined/PySyft/pull/6067
    • Add trace() and prod() methods for SingleEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6008
    • Private compare iteration 4 to iteration 3 by @gmuraru in https://github.com/OpenMined/PySyft/pull/6070
    • Iteration3 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6069
    • Iteration 5 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6072
    • Iteration 6 - Add ring size and use map operation by @gmuraru in https://github.com/OpenMined/PySyft/pull/6073
    • Added cumsum() and cumprod() to SEPT, REPT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6029
    • [Back-End] - Adjust permissions so a Data Scientist (or any user?) can update their own information by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6076
    • SMPC - Private Multiplication and Parties communication. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6032
    • Added remaining Week 3 operators plus a bonus Week 4 operator by @IshanMi in https://github.com/OpenMined/PySyft/pull/6030
    • Add get_ops from ShareTensor by @gmuraru in https://github.com/OpenMined/PySyft/pull/6074
    • notebooks: add mock notebooks for course 3 by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5964
    • Documentation: Hagrid by @jmaunon in https://github.com/OpenMined/PySyft/pull/6079
    • Admin users can set budget when creating users through jupyter notebook by @iamtrask in https://github.com/OpenMined/PySyft/pull/6080
    • Configure self-hosted runner for CI runs by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6075
    • Intermediate Gamma Tensor [IGT] by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6036
    • Update ancestors.py by @pculliton in https://github.com/OpenMined/PySyft/pull/6081
    • SMPC Private compare by @gmuraru in https://github.com/OpenMined/PySyft/pull/6077
    • Update dataset upload flow (Functionalities for assets) by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6068
    • fixing association requests by @madhavajay in https://github.com/OpenMined/PySyft/pull/6059
    • Private-private comparison for RowEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6087
    • Client PeerDiscovery by @madhavajay in https://github.com/OpenMined/PySyft/pull/6088
    • Network Search by @madhavajay in https://github.com/OpenMined/PySyft/pull/6092
    • Initial work on unfinished tasks retrying. by @tudorcebere in https://github.com/OpenMined/PySyft/pull/6089
    • Container Action by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6084
    • Login to ProxyClient by @madhavajay in https://github.com/OpenMined/PySyft/pull/6093
    • Polling and blocking by @iamtrask in https://github.com/OpenMined/PySyft/pull/6090
    • splitting smpc test to run on self-hosted by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6083
    • Added sy.networks API to fetch from github.com/OpenMined/NetworkRegistry by @madhavajay in https://github.com/OpenMined/PySyft/pull/6097
    • Smpc dp integration by @iamtrask in https://github.com/OpenMined/PySyft/pull/6094
    • WIP - Fix dataset delete during get and request approval by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6095
    • Added configure and settings to network by @madhavajay in https://github.com/OpenMined/PySyft/pull/6098
    • Fixed join_network to support both client and host_or_ip by @madhavajay in https://github.com/OpenMined/PySyft/pull/6100
    • PyGrid frontend by @tcp in https://github.com/OpenMined/PySyft/pull/6078
    • Update get_settings info by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6099
    • 0.6.0 alpha0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6101
    • SMPC-DP comparison by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6105
    • Add version tests path back in workflow file by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6109
    • Pre-process material for Comparison operations by @gmuraru in https://github.com/OpenMined/PySyft/pull/6086
    • Fixed issue where datasets were double encoded via the proxy client by @madhavajay in https://github.com/OpenMined/PySyft/pull/6107
    • Adding bump2version and continuous delivery Github Action by @madhavajay in https://github.com/OpenMined/PySyft/pull/6113
    • Update notebooks for Lesson 2, 3 and 4 by @IshanMi in https://github.com/OpenMined/PySyft/pull/6116
    • Update L5_Data_Scientist.ipynb by @pculliton in https://github.com/OpenMined/PySyft/pull/6102
    • Fix issue with worker crashing with larger numpy arrays by @madhavajay in https://github.com/OpenMined/PySyft/pull/6115
    • Update Hagrid docs to contain Kubernetes deployment by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6117
    • Pregeneration of Pointer in Bit Decomposition by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6110
    • Default dict smpc action fix by @gmuraru in https://github.com/OpenMined/PySyft/pull/6111
    • Computing Paradigm Shift to Green threads by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6118
    • [W.I.P.] Updated L2, L3, L4, L5 notebooks by @IshanMi in https://github.com/OpenMined/PySyft/pull/6119
    • Fix object dataset relationship deleted on data request. by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6114
    • Update 0.6.0 branch so that hagrid will pull the latest alpha by @iamtrask in https://github.com/OpenMined/PySyft/pull/6122
    • Add warning for default username and password login by @iamtrask in https://github.com/OpenMined/PySyft/pull/6123
    • Update L2 notebook by @IshanMi in https://github.com/OpenMined/PySyft/pull/6125
    • Beaver Action Message by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6120
    • simple key check for application layer vpn security and firewall rules by @bayegaspard in https://github.com/OpenMined/PySyft/pull/6057
    • require all datasets to be np.int32 by @iamtrask in https://github.com/OpenMined/PySyft/pull/6124
    • Add assessment for L3, update assessment for L4, finish notebook for L5 by @IshanMi in https://github.com/OpenMined/PySyft/pull/6128
    • Update Lesson 2 notebook by @iamtrask in https://github.com/OpenMined/PySyft/pull/6126
    • Add Batched SMPC Action by @gmuraru in https://github.com/OpenMined/PySyft/pull/6112
    • Add L5 Assessment by @IshanMi in https://github.com/OpenMined/PySyft/pull/6129
    • apple m1 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6136
    • Fixing vpn firewall scanning test by @madhavajay in https://github.com/OpenMined/PySyft/pull/6131
    • Finalize all Course 3 notebooks by @IshanMi in https://github.com/OpenMined/PySyft/pull/6137
    • Fix: change roles update route from PUT to PATCH by @tcp in https://github.com/OpenMined/PySyft/pull/6130
    • Fix: domain config formData by @tcp in https://github.com/OpenMined/PySyft/pull/6134
    • Reduce the number of assets that are printed when there are a lot of assets by @iamtrask in https://github.com/OpenMined/PySyft/pull/6127
    • Fix: add support for updating institution and website fields by @tcp in https://github.com/OpenMined/PySyft/pull/6133
    • Modified SMPC Actions to single message by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6132
    • Hagrid to throw error without launching if there's not enough ram by @iamtrask in https://github.com/OpenMined/PySyft/pull/6140
    • Disable unique name enforcement for now by @iamtrask in https://github.com/OpenMined/PySyft/pull/6141
    • Updating azure quickstart template image reference by @madhavajay in https://github.com/OpenMined/PySyft/pull/6144
    • Modified SQL Alchemy Pool Size by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6143
    • Add new spdz algo with less mul by @gmuraru in https://github.com/OpenMined/PySyft/pull/6145
    • Fixing maximum message size by @madhavajay in https://github.com/OpenMined/PySyft/pull/6146
    • SMPC+DP Comparison by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6147
    • Remove one final multiplication and print statements by @gmuraru in https://github.com/OpenMined/PySyft/pull/6151
    • Index objects with ID without having to pull back entire database to … by @iamtrask in https://github.com/OpenMined/PySyft/pull/6148
    • Creating hotfix to correct issue on azure vm where db migration fails by @madhavajay in https://github.com/OpenMined/PySyft/pull/6153
    • Fix: UI compatible with dev by @tcp in https://github.com/OpenMined/PySyft/pull/6139
    • print synthetic data when printing pointer to dp tensors by @iamtrask in https://github.com/OpenMined/PySyft/pull/6155
    • changes from 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6158
    • Moved config into celery_config file and added celery_serde by @madhavajay in https://github.com/OpenMined/PySyft/pull/6149
    • fixed budget and comparision by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6154
    • Share one with other parties by @gmuraru in https://github.com/OpenMined/PySyft/pull/6152
    • Released HAGrid 0.1.7 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6159
    • Upcast Results for Pandas by @madhavajay in https://github.com/OpenMined/PySyft/pull/6160
    • More UI polish by @tcp in https://github.com/OpenMined/PySyft/pull/6157
    • Docker working for m1 by @fiza11 in https://github.com/OpenMined/PySyft/pull/6161
    • docs: fix notebooks location in monorepo tree by @tenevdev in https://github.com/OpenMined/PySyft/pull/6162
    • Add Glossary page to the docs by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6163
    • Add more explanation in the installation docs by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6164
    • HAGrid Windows by @madhavajay in https://github.com/OpenMined/PySyft/pull/6167
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6169
    • fixing k8s test by @madhavajay in https://github.com/OpenMined/PySyft/pull/6170
    • Update L3_DataPreparation.ipynb by @pculliton in https://github.com/OpenMined/PySyft/pull/6173
    • Creating beginner-focused installation tutorials focused on personal-machine deployment by @iamtrask in https://github.com/OpenMined/PySyft/pull/6172
    • Update images for macOS tutorial by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6175
    • Added tests for comparison operation. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6174
    • Windows Bootstrap by @madhavajay in https://github.com/OpenMined/PySyft/pull/6178
    • Add urls to doc pages by @iamtrask in https://github.com/OpenMined/PySyft/pull/6180
    • SMPC Numpy ops by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6179
    • add docker builds to weekly alpha release for continuous deployment by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6168
    • Fixed SMPC Numpy tests by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6176
    • Testing IGT operations & adding new ones by @IshanMi in https://github.com/OpenMined/PySyft/pull/6103
    • Small cleanup of unused files and references to duet by @madhavajay in https://github.com/OpenMined/PySyft/pull/6184
    • SMPC Numpy Ops Iteration 2 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6183
    • Update overview.rst by @iamtrask in https://github.com/OpenMined/PySyft/pull/6185
    • Fixing M1 Syft Wheel by @madhavajay in https://github.com/OpenMined/PySyft/pull/6186
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6187
    • Smaller torch wheel by @madhavajay in https://github.com/OpenMined/PySyft/pull/6190
    • SMPC Numpy Iteration 3 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6188
    • hagrid install doc fix by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6193
    • Polish and refactor vpn sec by @bayegaspard in https://github.com/OpenMined/PySyft/pull/6182
    • [WIP]windows Ci test runner setup by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6189
    • docs: fix code block format in install tutorial by @tenevdev in https://github.com/OpenMined/PySyft/pull/6195
    • Line endings by @iamtrask in https://github.com/OpenMined/PySyft/pull/6196
    • [WIP] feat: configure traefik self-signed TLS by @tenevdev in https://github.com/OpenMined/PySyft/pull/6177
    • Add version check of nodes during login and apply to network by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6200
    • Ch4094 by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6197
    • Revert line endings change by @iamtrask in https://github.com/OpenMined/PySyft/pull/6198
    • Added TLS upload to HAGrid by @madhavajay in https://github.com/OpenMined/PySyft/pull/6207
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6208
    • Released HAGrid 0.1.9 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6210
    • Sc 3973 by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6209
    • Network node improvements by @iamtrask in https://github.com/OpenMined/PySyft/pull/6203
    • Update 0.6.0 for hagrid by @iamtrask in https://github.com/OpenMined/PySyft/pull/6216

    New Contributors

    • @hershd23 made their first contribution in https://github.com/OpenMined/PySyft/pull/5804
    • @IshanMi made their first contribution in https://github.com/OpenMined/PySyft/pull/5825
    • @rohithpudari made their first contribution in https://github.com/OpenMined/PySyft/pull/5649
    • @dependabot made their first contribution in https://github.com/OpenMined/PySyft/pull/5906
    • @bayegaspard made their first contribution in https://github.com/OpenMined/PySyft/pull/5958
    • @bitsofsteve made their first contribution in https://github.com/OpenMined/PySyft/pull/5987
    • @fiza11 made their first contribution in https://github.com/OpenMined/PySyft/pull/5986
    • @callezenwaka made their first contribution in https://github.com/OpenMined/PySyft/pull/5918
    • @pculliton made their first contribution in https://github.com/OpenMined/PySyft/pull/6027
    • @AutomationLife made their first contribution in https://github.com/OpenMined/PySyft/pull/5928
    • @tenevdev made their first contribution in https://github.com/OpenMined/PySyft/pull/6162

    Full Changelog: https://github.com/OpenMined/PySyft/compare/0.5.0...0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0-alpha.0(Nov 1, 2021)

    0.6.0-alpha.0 - Unsupervised Uluru

    This is the first alpha release of 0.6.0.

    What's Changed

    • Test network utility by @vsquareg in https://github.com/OpenMined/PySyft/pull/5609
    • Fixing Pillow 8.3.0 breaking CI by @madhavajay in https://github.com/OpenMined/PySyft/pull/5755
    • Serialization of ring_size in ShareTensor, ReplicatedSharedTensor by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5753
    • Modified deserialization to use share config. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5763
    • Iamtrask/ch135/sample story by @iamtrask in https://github.com/OpenMined/PySyft/pull/5791
    • [WIP] pip install hagrid (and it's deps automagically) by @iamtrask in https://github.com/OpenMined/PySyft/pull/5777
    • [sympc] Changed type of nr_parties to int32 from bytes by @hershd23 in https://github.com/OpenMined/PySyft/pull/5804
    • Fixed linting errror by unpacking tuple correctly and adding type hint by @IshanMi in https://github.com/OpenMined/PySyft/pull/5825
    • [WIP] Store DP Tensor in object-store by @Kritikalcoder in https://github.com/OpenMined/PySyft/pull/5792
    • Flake 8 fix 0.6.0 by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5821
    • Remove --experimental_allow_proto3_optional and force upgrade protobuf>=3.15 by @rohithpudari in https://github.com/OpenMined/PySyft/pull/5649
    • Removed old original pytorch example references and updated notebooks by @madhavajay in https://github.com/OpenMined/PySyft/pull/5835
    • Gym protobuf by @madhavajay in https://github.com/OpenMined/PySyft/pull/5836
    • [W.I.P.] Fixing linting errors in Autograd by @IshanMi in https://github.com/OpenMined/PySyft/pull/5832
    • Ch488 HAGrid goes to sk00le and learns grammar by @madhavajay in https://github.com/OpenMined/PySyft/pull/5828
    • fixing mypy for hagrid by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5829
    • fixing mypy for grid by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5831
    • Added PublishScalarService to Domain by @IshanMi in https://github.com/OpenMined/PySyft/pull/5842
    • Fixed issue causing the tool to break because of MyPy change by @madhavajay in https://github.com/OpenMined/PySyft/pull/5843
    • Getting MyPy checking for Syft working by @madhavajay in https://github.com/OpenMined/PySyft/pull/5845
    • Updating tox fix by @madhavajay in https://github.com/OpenMined/PySyft/pull/5846
    • Ch291 syft by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5841
    • Madhava/hot fix backend issue by @madhavajay in https://github.com/OpenMined/PySyft/pull/5847
    • Madhava/ch589 hagrid polish by @madhavajay in https://github.com/OpenMined/PySyft/pull/5849
    • Add Tensor send support for ADP PyGrid demo by @IshanMi in https://github.com/OpenMined/PySyft/pull/5853
    • Fixed issue where datasets endpoint was using old attribute name by @madhavajay in https://github.com/OpenMined/PySyft/pull/5854
    • First 0.6.0 Stack Integration Test by @madhavajay in https://github.com/OpenMined/PySyft/pull/5855
    • Added version to stack docker images by @madhavajay in https://github.com/OpenMined/PySyft/pull/5856
    • HAGrid ssh keygen by @madhavajay in https://github.com/OpenMined/PySyft/pull/5858
    • Windows HAGrid README by @madhavajay in https://github.com/OpenMined/PySyft/pull/5859
    • [W.I.P.] Add experimental notebook for ADP Demo by @IshanMi in https://github.com/OpenMined/PySyft/pull/5862
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5863
    • Hotfix for Deps by @madhavajay in https://github.com/OpenMined/PySyft/pull/5867
    • flynt check back by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5865
    • HAGrid Wheel Build by @madhavajay in https://github.com/OpenMined/PySyft/pull/5871
    • Sympc tensor grid by @gmuraru in https://github.com/OpenMined/PySyft/pull/5822
    • Notebook design experience by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5823
    • Merge into dev by @iamtrask in https://github.com/OpenMined/PySyft/pull/5875
    • Continuing work from PR #5734 by @iamtrask in https://github.com/OpenMined/PySyft/pull/5737
    • Codebase fixes to get the Friday trade_demo working by @iamtrask in https://github.com/OpenMined/PySyft/pull/5876
    • Serde for primitive types by @iamtrask in https://github.com/OpenMined/PySyft/pull/5879
    • Add support for hagrid shorthand commands by @iamtrask in https://github.com/OpenMined/PySyft/pull/5878
    • Hot Fix for unboxed PyPrimitive upcasting by @madhavajay in https://github.com/OpenMined/PySyft/pull/5884
    • mypy fix for syft 🍒 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5885
    • Fixed weird issue with test_known_child_nodes failing in CI by @madhavajay in https://github.com/OpenMined/PySyft/pull/5888
    • Fixing dependencies with security warnings from dependabot by @madhavajay in https://github.com/OpenMined/PySyft/pull/5893
    • [SMPC] Add public operations and refactor some code by @gmuraru in https://github.com/OpenMined/PySyft/pull/5889
    • Bump next from 10.0.8 to 11.1.0 in /packages/grid/grid-ui by @dependabot in https://github.com/OpenMined/PySyft/pull/5906
    • Fixing problem with hagrid and tail by @madhavajay in https://github.com/OpenMined/PySyft/pull/5915
    • [PyGrid] Improve logging by @tcp in https://github.com/OpenMined/PySyft/pull/5880
    • [PyGrid] Set up pytest for grid tests by @tcp in https://github.com/OpenMined/PySyft/pull/5882
    • [WIP] Upgrade websockets for dependabot security alert by @madhavajay in https://github.com/OpenMined/PySyft/pull/5914
    • HAGrid VM Image by @madhavajay in https://github.com/OpenMined/PySyft/pull/5912
    • auto update cherry picked by @madhavajay in https://github.com/OpenMined/PySyft/pull/5919
    • Update Stable Branch by @madhavajay in https://github.com/OpenMined/PySyft/pull/5920
    • Azure Image Build and Quickstart Template by @madhavajay in https://github.com/OpenMined/PySyft/pull/5924
    • Add publish as forward method by @gmuraru in https://github.com/OpenMined/PySyft/pull/5929
    • [PyGrid] Users CRUD by @tcp in https://github.com/OpenMined/PySyft/pull/5883
    • HAGrid Improvements by @madhavajay in https://github.com/OpenMined/PySyft/pull/5936
    • Added log rotation cronjob by @madhavajay in https://github.com/OpenMined/PySyft/pull/5937
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5938
    • Split cron into redeploy by @madhavajay in https://github.com/OpenMined/PySyft/pull/5939
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5940
    • Updating 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5941
    • Make redeploy.sh only run once at a time by @madhavajay in https://github.com/OpenMined/PySyft/pull/5942
    • Update 0.6.0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5943
    • Back to dev by @madhavajay in https://github.com/OpenMined/PySyft/pull/5947
    • Prepare for ADP+SMPC Demo branch Merge into dev by @iamtrask in https://github.com/OpenMined/PySyft/pull/5931
    • [WIP] Accountant allows downloads of published data by @Kritikalcoder in https://github.com/OpenMined/PySyft/pull/5793
    • feat: start UI e2e testing by @tcp in https://github.com/OpenMined/PySyft/pull/5932
    • I tried to sort out merge conflicts for https://github.com/OpenMined/PySyft/pull/5935 by @iamtrask in https://github.com/OpenMined/PySyft/pull/5949
    • Fixing docker image cache and adding stack tests to dev PRs by @madhavajay in https://github.com/OpenMined/PySyft/pull/5953
    • SimpleService and NodeRunnableMessageWithReply by @iamtrask in https://github.com/OpenMined/PySyft/pull/5954
    • fix: remove blank notebook by @tcp in https://github.com/OpenMined/PySyft/pull/5951
    • syft.register() and domain_client.request_budget() by @iamtrask in https://github.com/OpenMined/PySyft/pull/5955
    • Revert previous change I made which broke things because of new alemb… by @iamtrask in https://github.com/OpenMined/PySyft/pull/5956
    • deleted mitogen folder and strategy by @bayegaspard in https://github.com/OpenMined/PySyft/pull/5958
    • Dataset creation and discovery improvements by @iamtrask in https://github.com/OpenMined/PySyft/pull/5957
    • [WIP] Mock Notebooks for course 3 by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5961
    • Deploy node-specific interface (domain or network) by @tcp in https://github.com/OpenMined/PySyft/pull/5959
    • Fixing some Docker issues by @madhavajay in https://github.com/OpenMined/PySyft/pull/5965
    • MPCTensor : Numpy Hook Methods by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5963
    • Fixing broken torch tests due to changed handling of builtins and boxes by @madhavajay in https://github.com/OpenMined/PySyft/pull/5966
    • chore(deps): bump next from 11.1.0 to 11.1.1 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5950
    • chore(deps): bump axios from 0.21.1 to 0.21.2 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5972
    • Serde refactor remove interface by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5970
    • Absolufy imports and fixes by @madhavajay in https://github.com/OpenMined/PySyft/pull/5975
    • moving recursive serde into the decorator by @tudorcebere in https://github.com/OpenMined/PySyft/pull/5973
    • Merging adp_dev into dev by @IshanMi in https://github.com/OpenMined/PySyft/pull/5978
    • Merge adp_dev into dev by @IshanMi in https://github.com/OpenMined/PySyft/pull/5979
    • IntermediateGammaTensor.repeat() by @iamtrask in https://github.com/OpenMined/PySyft/pull/5977
    • [WIP] IntermediateGammaTensor.sub by @iamtrask in https://github.com/OpenMined/PySyft/pull/5976
    • [WIP] Data Subject Annotation Wizard and related UX improvements by @iamtrask in https://github.com/OpenMined/PySyft/pull/5960
    • SMPC + AutoDP Integration Tests by @madhavajay in https://github.com/OpenMined/PySyft/pull/5981
    • Forgot the prestige 🎩 by @madhavajay in https://github.com/OpenMined/PySyft/pull/5982
    • Ci optimize path filter by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/5987
    • Modified Version Tests to pull request. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5988
    • SMPC -Numpy Ops by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5990
    • Add comparison operators for REPTs and SEPTs by @fiza11 in https://github.com/OpenMined/PySyft/pull/5986
    • [SMPC] Implemented matmul by @aanurraj in https://github.com/OpenMined/PySyft/pull/5993
    • Abstraction of MPCTensor for tensor pointer computation. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5971
    • Bump tmpl from 1.0.4 to 1.0.5 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5998
    • chore(deps): bump semver-regex from 3.1.2 to 3.1.3 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/5992
    • Added support and tests to SingleEntityPhiTensor for all transform operators by @IshanMi in https://github.com/OpenMined/PySyft/pull/5995
    • Added .lock and .json to stack tests to include frontend package updates by @madhavajay in https://github.com/OpenMined/PySyft/pull/6001
    • Bump ansi-regex from 5.0.0 to 5.0.1 in /packages/grid/frontend by @dependabot in https://github.com/OpenMined/PySyft/pull/6000
    • Initial VPN support by @madhavajay in https://github.com/OpenMined/PySyft/pull/5997
    • Added support & tests for np operations (eq, ne, add, sub, repeat, pos) to S.E.P.T, R.E.P.T by @IshanMi in https://github.com/OpenMined/PySyft/pull/5948
    • [W.I.P.] Patch flaky SEPT tests on Windows by checking for dimension size by @IshanMi in https://github.com/OpenMined/PySyft/pull/6002
    • Adding ALL remaining ADP Operations for week 2 by @IshanMi in https://github.com/OpenMined/PySyft/pull/6005
    • Add support and tests for all transform operations for RowEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6003
    • Update / Fix roles by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6006
    • Fixed Inplace SQL Alchemy issue. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6010
    • Update README.md by @callezenwaka in https://github.com/OpenMined/PySyft/pull/5918
    • Ci docker layer cache setup by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6004
    • Replacing Global Variables in pytest files with fixtures by @IshanMi in https://github.com/OpenMined/PySyft/pull/6009
    • Create L5_Data_Scientist.ipynb by @pculliton in https://github.com/OpenMined/PySyft/pull/6027
    • Released HAGrid==0.1.6 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6034
    • [SMPC]Generation of Beaver Triples by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5996
    • Kubernetes installation with helmcharts and tilt by @AutomationLife in https://github.com/OpenMined/PySyft/pull/5928
    • Docker Buildx Cache by @madhavajay in https://github.com/OpenMined/PySyft/pull/6039
    • Fixed issue with devspace dev command by @madhavajay in https://github.com/OpenMined/PySyft/pull/6038
    • Manual Docker Cache + Cleanup by @madhavajay in https://github.com/OpenMined/PySyft/pull/6040
    • Update the deploy node notebook for Course 3 by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6037
    • Making git repo url explicit by adding .git suffix by @madhavajay in https://github.com/OpenMined/PySyft/pull/6044
    • Tensor pointer abstraction. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6045
    • Fixes SMPC stack integration tests by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/5974
    • Implement n_entities and unique_entities for SEPT, REPT, IGT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6035
    • Modified Crypto Store Code by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6048
    • SPDZ multiply code by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6049
    • VPN API by @madhavajay in https://github.com/OpenMined/PySyft/pull/6046
    • Private Multiplication Iteration four. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6050
    • Private mul iteration5 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6052
    • Private mul iteration6 by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6053
    • Add round() to SEPT, REPT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6028
    • fix: update set-value to 4.0.0 by @tcp in https://github.com/OpenMined/PySyft/pull/6062
    • Fix: move set-value to 4.1.0 by @tcp in https://github.com/OpenMined/PySyft/pull/6063
    • [Engineering] - DO configures domain by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/5968
    • Implement Min() and Max() for SingleEntityPhiTensor by @IshanMi in https://github.com/OpenMined/PySyft/pull/6007
    • Fix race condition in trade demo test with getting requests approved by @madhavajay in https://github.com/OpenMined/PySyft/pull/6066
    • Add L3 notebook improvements by @IrinaMBejan in https://github.com/OpenMined/PySyft/pull/6058
    • Add qualifier and arithmetic operations for SEPTs by @fiza11 in https://github.com/OpenMined/PySyft/pull/6013
    • Iteration 2 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6065
    • Add decomposition on the DS side by @gmuraru in https://github.com/OpenMined/PySyft/pull/6067
    • Add trace() and prod() methods for SingleEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6008
    • Private compare iteration 4 to iteration 3 by @gmuraru in https://github.com/OpenMined/PySyft/pull/6070
    • Iteration3 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6069
    • Iteration 5 Private Compare by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6072
    • Iteration 6 - Add ring size and use map operation by @gmuraru in https://github.com/OpenMined/PySyft/pull/6073
    • Added cumsum() and cumprod() to SEPT, REPT by @IshanMi in https://github.com/OpenMined/PySyft/pull/6029
    • [Back-End] - Adjust permissions so a Data Scientist (or any user?) can update their own information by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6076
    • SMPC - Private Multiplication and Parties communication. by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6032
    • Added remaining Week 3 operators plus a bonus Week 4 operator by @IshanMi in https://github.com/OpenMined/PySyft/pull/6030
    • Add get_ops from ShareTensor by @gmuraru in https://github.com/OpenMined/PySyft/pull/6074
    • notebooks: add mock notebooks for course 3 by @shubham3121 in https://github.com/OpenMined/PySyft/pull/5964
    • Documentation: Hagrid by @jmaunon in https://github.com/OpenMined/PySyft/pull/6079
    • Admin users can set budget when creating users through jupyter notebook by @iamtrask in https://github.com/OpenMined/PySyft/pull/6080
    • Configure self-hosted runner for CI runs by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6075
    • Intermediate Gamma Tensor [IGT] by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6036
    • Update ancestors.py by @pculliton in https://github.com/OpenMined/PySyft/pull/6081
    • SMPC Private compare by @gmuraru in https://github.com/OpenMined/PySyft/pull/6077
    • Update dataset upload flow (Functionalities for assets) by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6068
    • fixing association requests by @madhavajay in https://github.com/OpenMined/PySyft/pull/6059
    • Private-private comparison for RowEntityPhiTensors by @IshanMi in https://github.com/OpenMined/PySyft/pull/6087
    • Client PeerDiscovery by @madhavajay in https://github.com/OpenMined/PySyft/pull/6088
    • Network Search by @madhavajay in https://github.com/OpenMined/PySyft/pull/6092
    • Initial work on unfinished tasks retrying. by @tudorcebere in https://github.com/OpenMined/PySyft/pull/6089
    • Container Action by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6084
    • Login to ProxyClient by @madhavajay in https://github.com/OpenMined/PySyft/pull/6093
    • Polling and blocking by @iamtrask in https://github.com/OpenMined/PySyft/pull/6090
    • splitting smpc test to run on self-hosted by @bitsofsteve in https://github.com/OpenMined/PySyft/pull/6083
    • Added sy.networks API to fetch from github.com/OpenMined/NetworkRegistry by @madhavajay in https://github.com/OpenMined/PySyft/pull/6097
    • Smpc dp integration by @iamtrask in https://github.com/OpenMined/PySyft/pull/6094
    • WIP - Fix dataset delete during get and request approval by @shubham3121 in https://github.com/OpenMined/PySyft/pull/6095
    • Added configure and settings to network by @madhavajay in https://github.com/OpenMined/PySyft/pull/6098
    • Fixed join_network to support both client and host_or_ip by @madhavajay in https://github.com/OpenMined/PySyft/pull/6100
    • PyGrid frontend by @tcp in https://github.com/OpenMined/PySyft/pull/6078
    • Update get_settings info by @IonesioJunior in https://github.com/OpenMined/PySyft/pull/6099
    • 0.6.0 alpha0 by @madhavajay in https://github.com/OpenMined/PySyft/pull/6101
    • SMPC-DP comparison by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6105
    • Add version tests path back in workflow file by @rasswanth-s in https://github.com/OpenMined/PySyft/pull/6109
    • Pre-process material for Comparison operations by @gmuraru in https://github.com/OpenMined/PySyft/pull/6086
    • Fixed issue where datasets were double encoded via the proxy client by @madhavajay in https://github.com/OpenMined/PySyft/pull/6107
    • Syft 0.6.0 Alpha by @madhavajay in https://github.com/OpenMined/PySyft/pull/6106

    New Contributors

    • @hershd23 made their first contribution in https://github.com/OpenMined/PySyft/pull/5804
    • @IshanMi made their first contribution in https://github.com/OpenMined/PySyft/pull/5825
    • @rohithpudari made their first contribution in https://github.com/OpenMined/PySyft/pull/5649
    • @dependabot made their first contribution in https://github.com/OpenMined/PySyft/pull/5906
    • @bayegaspard made their first contribution in https://github.com/OpenMined/PySyft/pull/5958
    • @bitsofsteve made their first contribution in https://github.com/OpenMined/PySyft/pull/5987
    • @fiza11 made their first contribution in https://github.com/OpenMined/PySyft/pull/5986
    • @callezenwaka made their first contribution in https://github.com/OpenMined/PySyft/pull/5918
    • @pculliton made their first contribution in https://github.com/OpenMined/PySyft/pull/6027
    • @AutomationLife made their first contribution in https://github.com/OpenMined/PySyft/pull/5928

    Full Changelog: https://github.com/OpenMined/PySyft/compare/0.5.0...v0.6.0-alpha.0

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0(Jun 28, 2021)

    OpenMined Presents Syft and Grid 0.5.0! 🎉

    We also released a paper at ICLR that uses 0.5.0 in it: Syft 0.5: A Platform for Universally Deployable Structured Transparency

    Changes

    This list is not comprehensive but includes many of the highlights.

    • sy.load is now automatic
    • apache arrow torch serde
    • python 3.9 and pydp support
    • updated dev tooling with tox
    • new docker containers for grid
    • added docker-compose example
    • unified versioning system for 0.5.0rc3
    • grid supports PostgreSQL
    • lots of bug fixes
    • recursive Serializable Plans with ResNet 18 example
    • new Mono Repo structure
    • renamed master branch to main
    • added torch>=1.6.0 and torch<=1.8.1 support
    • new API for support libraries
    • static methods
    • global variables
    • dynamic methods
    • enums
    • storeable refactored
    • basic plans
    • model Ccentric Federated Learning
    • kotlinSyft
    • grid workers
    • syft CLI / Repl Support
    • remote dataloader
    • duet notebook tests
    • benchmark tests

    Provisional Lib Support

    • TenSEAL
    • SyMPC
    • PyDP
    • PSI
    • opacus
    • pandas
    • petlib
    • PIL
    • PyTorch Lightning (requires our branch)
    • zsks
    • numpy
    • Please know that library support is still incomplete. This release is intended to support the basic, minimum requirements for the below libraries.

    Grid

    • grid client
    • fl client
    • torch support
    • updated Duet Logo
    • new logging system

    Examples

    • DCGAN
    • MNIST
    • MNIST Lightning
    • SuperResolution
    • VAE
    • Model Centric Federated Learning
    • Homomorphic Encryption
    • Vertical Learning
    • Private Set Intersection
    • Secure Multi Party Compute
    • Privacy AI Series (Course 2)

    Acknowledgements in Alphabetical Order

    While this isn't an exhaustive list, we'd like to thank the following people for contributing to this release! If you feel you were missed on this list please reach out and we can add you.

    Adam J Hall Aditi Verma Amr Kayid Animesh Gupta Anshuman Singh Anubhav Raj Singh Ariann Farias Ariann Michael Arpit Vaghela Arturo Marquez Flores Avinash Swaminathan Ayoub Benaissa Ben Fielding Baye Gaspard Bogdan Cebere Chinmay Shah Chirag Gomber Chitresh Goel Daniele Gadler Davide Testuggine Eelco van der Wel George-Cristian Muraru Gokkulnath TS Harkirat Singh Hideaki Takahashi (Syumei) Héricles Emanuel Ionésio Lima da Costa Junior Irina Bejan JMLourier Jirka Borovec Joel Lee José Benardi de Souza Nunes Koen van der Veen Kritika Prakash Lee Yi Jie Joel Madhava Jay Nabanita Dash Nahua Kang Nicolas Remerscheid Param Mirani Patrick Cason Plamen Hristov Praful932 Raghav Prabhakar Rima Al Shikh Robert Perrotta Sachin Kumar Syumei Théo Ryffel Tudor Cebere Vaibhav Vardhan Vova Manannikov Wansoo Kim Zarreen Naowal Reza Akshay Verma Curtis Mitchell Jason Paumier Rajat Chaudhari Shubhendra Singh Chauhan syumeikoukyo Thomas Chaton Thiago Porto Victor Perez uid42 xutongye gleec14 root marcalph rahul

    Source code(tar.gz)
    Source code(zip)
  • 0.5.0rc3(Jun 25, 2021)

    This is the third release candidate for version 0.5.0!

    • sy.load is now automatic
    • apache arrow torch serde
    • python 3.9 and pydp support
    • updated dev tooling with tox
    • new docker containers for grid
    • added docker-compose example
    • unified versioning system for 0.5.0rc3
    • grid supports PostgreSQL
    • lots of bug fixes
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0rc2(Jun 1, 2021)

    0.5.0rc2

    This is the second release candidate for version 0.5.0!

    • Recursive Serializable Plans with ResNet 18 example
    • PyGrid Integration fixes
    • New Mono Repo structure
    • Renamed master branch to main
    • Added torch==1.8.1 support
    • Many more bug fixes and minor improvements
    Source code(tar.gz)
    Source code(zip)
  • 0.5.0rc1(Apr 1, 2021)

    0.5.0rc1

    This is the first release candidate for version 0.5.0!

    Happy April Fools Day - sorry, this release is NOT a joke. 😄

    We have added support for the following:

    • AST
      • New API for support libraries
      • static methods
      • global variables
      • dynamic methods
      • enums
    • Core
      • Storeable refactored
      • Basic Plans
      • Model Centric Federated Learning
        • KotlinSyft
        • PySyft (as a worker lib)
        • SwiftSyft is still in development
        • syft.js is still in development
      • CLI / Repl Support
      • Remote Dataloader
        • Torch Tensor
        • CSV
    • *Library Support
      • Python
        • OrderedDict
        • Slice
        • Iterator
        • Tuple
      • TenSEAL
      • SyMPC
      • PyDP
      • PSI
      • opacus
      • pandas
      • petlib
      • PIL
      • PyTorch Lightning (requires our branch)
      • zsks
      • numpy arrays
    • Grid
      • Grid Client
      • FL Client
    • PyTorch Support
      • 1.6.x
      • 1.7.x
      • 1.8.x
    • Python
      • 3.6
      • 3.7
      • 3.8
      • 3.9
    • OS
      • Mac
      • Windows
      • Linux
    • Updated Duet Logo
    • New Logging System
    • Integration Tests
    • Duet Notebook Tests
    • Benchmark Tests
    • Examples
      • DCGAN
      • MNIST
      • MNIST Lightning
      • SuperResolution
      • VAE
      • Model Centric Federated Learning
      • Homomorphic Encryption
      • Vertical Learning
      • Private Set Intersection
      • Secure Multi Party Compute
      • Privacy AI Series (Course 2)

    * Please know that library support is still incomplete. This release is intended to support the basic, minimum requirements for the below libraries.

    Acknowledgements

    While this isn't an exhaustive list, we'd like to thank the following people for contributing to this release!

    Adam J Hall Animesh Gupta Anshuman Singh Anubhav Raj Singh Ariann Farias ArtistBanda Arturo Marquez Flores Avinash Swaminathan Ayoub Benaissa Ben Fielding Bogdan Cebere Chinmay Shah Chirag Gomber Chitresh Goel Daniele Gadler George-Cristian Muraru Gokkulnath TS H4LL Harkirat Singh Hideaki Takahashi (Syumei) Ionesio Junior Irina Bejan JMLourier Jasopaum Jirka Borovec Joel Lee José Benardi de Souza Nunes Koen van der Veen Lee Yi Jie Joel Madhava Jay Nabanita Dash Nahua Nicolas Remerscheid Param Mirani Patrick Cason Plamen Hristov Praful932 Raghav Prabhakar Rima Robert Perrotta Syumei Théo Ryffel Tudor Cebere Vaibhav Vardhan Vova Manannikov Wansoo Kim Zarreen Naowal Reza akshay.verma animesh-007 avinsit123 curtismitchell dnabanita7 gleec14 jmaunon koukyosyumei lazy marcalph nahuakang rahul rajatrc1705 root shubhendra syumeikoukyo tchaton uid42 xutongye

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Nov 12, 2020)

    PySyft 0.3.0 Release Notes

    Welcome to the next evolution of PySyft. Today we're releasing PySyft 0.3.0, which is a complete rewrite over the 0.2.x product line. Since this is a complete rewrite of the codebase, we strongly suggest that you use 0.3.0 if you're just getting started with PySyft. If you're an existing user of PySyft 0.2.x, there will still be some support for that product line but we encourage you to upgrade. As always, we are happy to assist in this process over Slack.

    For those interested in trying out PySyft 0.3.0, we suggest you start with our "Duet" series of demos. All future releases will include a detailed breakdown of breaking changes, fixes, bug patches, and improvements.

    Source code(tar.gz)
    Source code(zip)
  • v0.2.9.2(Sep 14, 2020)

  • 0.2.9(Sep 14, 2020)

    TL;DR: Improve Function Secret Sharing for faster execution (5x faster than SecureNN) ; Add support for the BFV scheme ; Add benchmarks for monitoring ; Initialize FALCON implementation.

    PySyft 0.2.9 Release Notes

    New functionalities:

    • Replicated Sharing Tensor (RST): secret sharing, reconstruction, + - linear operations (#3856 by @abogaziah)
    • Replicated Sharing Tensor: Multiplication, Matrix multiplication, and Convolution (#4015 by @abogaziah)
    • Add Falcon module structure & design (#4484 by @abogaziah)
    • Added reversed operations to RST (#4508 by @abogaziah)
    • Falcon - Select share + evaluating (#4474 by @abogaziah @gmuraru)
    • RNS variant multiplication operation for FV scheme. (#3893 by @IamRavikantSingh)
    • Update FV scheme to use context chain instead of single context object (#3962 by @IamRavikantSingh)
    • Implement Relinearization operation of BFV Scheme (#3977 by @IamRavikantSingh)
    • Refactor bfv tests for faster results (#4012 by @IamRavikantSingh)
    • Add black2b hash to generate param_id for bfv scheme (#4509 by @IamRavikantSingh)
    • Add option to launch PyGrid network and nodes upon creation of a cluster (#3896 by @rimijoker)
    • Add argmin and min method in AST (#3961 by @marload)
    • Add RNG for workers (#3973 by @gmuraru and @abogaziah)
    • Add Benchmark Graph, Scripts for Sigmoid Approx. Methods (#4031 by @aanurraj)
    • Add benchmark graph and script for tanh function approximation methods (#4465 by @arturomf94)
    • Add MPC Benchmark Abstraction (sigmoid, tanh) (#4494 by @marload)
    • Added scripts, graphs for benchmarking AST operations (#4064 by @aanurraj)

    Bug fixes

    • Fix CrypTen tutorials (#3951 by @gmuraru)
    • Fix imports to avoid having imports in code called by __del__ (#3932 by @LaRiffle)
    • Overload mod operator for the fixed precision tensor (#3960 by @arturomf94)
    • Increase key-size to 2048-bit keys in test_websocket_worker (#3788 by @arturomf94)
    • Grid clients serialisation correction (#4020 by @Nilanshrajput)
    • Fix Return invalid dtype when MPC is applied (#4035 by @aanurraj)
    • Fix syft-proto version (#4469 by @gmuraru)

    Refactoring:

    • Improve the FSS crypto protocol to use Numpy + Rust for AST (#3892 by @LaRiffle)
    • Refactor SPDZ to use the crypto store (#3909 by @LaRiffle)
    • Optimize max and argmax for AdditiveSharingTensor (#3895 by @LaRiffle)
    • Code refactor using list comprehension + cleaning (#3920 #3921 #3929 #3949 #3938 #3955 #3947 by @marload)
    • Remove unused ss_scale var in PATE (#3956 by @marload)
    • Add has_child method to AbstractTensor (#3948 by @marload)
    • Make EmptyCryptoPrimitiveStoreError serializable (#3944 by @LaRiffle)
    • Refactor various little things (#3943 by @LaRiffle)
    • Update PyGrid URLs and cleanup Model-Centric notebooks a bit (#3959 by @vvmnnnkv)
    • Refactor AdditiveSharingTensor (#3924 by @LaRiffle)
    • Raise RuntimeError when negative integers is entered in the pow (#3987 by @marload)
    • Make Sandbox Tutorial more Intuitive (#3996 by @himalayanZephyr)
    • Improve Fast FixedPrecisonTensor Reciprocal Method (150x faster) (#4021 by @marload)
    • Use division for sigmoid (#4044 by @gmuraru)
    • Update simplify and detail in datacentclient (#4056 by @Nilanshrajput)
    • Add support for negative numbers in reciprocal method (#4065 by @addy369)
    • Error message if non integer value used with BFV scheme (#4042 by @IamRavikantSingh)
    • Add reformat and pin black version (#4500 by @gmuraru)
    • Updated startup scripts used in the Auto-scale API (#4007 by @rimijoker)

    Docs & tutorials:

    • Add a new tutorial on encrypted inference on resnet18 (#4539 by @LaRiffle)
    • Make tutorials about encrypted DNN faster using FSS (#3933 by @LaRiffle)
    • Documentation plan and protocol (#3974 by @nahuakang)
    • Update Part 2 to just print the loss tensor (#3964 by @himalayanZephyr)
    • Update Docs (#4475 by @IamRavikantSingh)

    Tests & CI

    Source code(tar.gz)
    Source code(zip)
  • v0.2.9(Sep 11, 2020)

  • v0.2.8(Jul 29, 2020)

    TL;DR: An incremental release for the benefit of mobile workers and pygrid. A new backend for encrypted computation.

    PySyft 0.2.8 Release Notes

    Breaking changes since v0.2.7:

    • Python 3.6 is not supported anymore (#3894)
    • Static and Dynamic FL concepts are resp. replaced with Model and Data centric (#3907 by @cereallarceny)

    New functionality:

    • Add support for CrypTen as a framework (#3894 by @youben11 @gmuraru & @LaRiffle)
    • Add BatchNorm to AdditiveSharingTensor (#3889 by @LaRiffle)
    • Improves the FV scheme with Parameters validation (#3870 by @IamRavikantSingh)

    Bug fixes

    • Fix inplace operations += and -= for AutogradTensor (#3872 by @juharris)
    • Fix nn.Module copy() (#3904 by @omershlo)

    Refactoring:

    • Improve remote garbage collection so support batched GC (#3805 by @LaRiffle)
    • Optimize communication in AvgPool, MaxPool and AdaptivePooling (#3836 by @LaRiffle)
    • Namespace dynamic FL client routes. Added url prefix dynamic to the Dynamic FL client url (#3853 by @sachin-101)
    • Improve public mul and div for AdditiveSharingTensor (#3835 by @LaRiffle)

    Docs & tutorials:

    • New Demo Tutorial on Training Encrypted NN using CrypTen on Grid (#3717 by @youben11 @gmuraru)
    • New tutorial on static FL: the Bandit Demo by @cereallarceny
    • Add notebook to show trained static FL model retrieval (#3861 by @vvmnnnkv)
    • Update install instructions in notebooks (#3830 by @mapmeld)
    • Update README.md by @cereallarceny

    Tests

    • Add Plan example using a RNN in tests (#3860 by @juharris and @vvmnnnkv)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.7(Jul 10, 2020)

    PySyft 0.2.7 Release Notes

    New functionality:

    • Implement msgpack serde for RoleAssignments (#3595 by @Jasopaum)
    • Create AbstractSendable class to provide comms methods generically (#3611 by @karlhigley)
    • Support serialization of lists in Arg (#3617 by @vvmnnnkv and @karlhigley)
    • Add FV homomorphic encryption scheme (#3276 @IamRavikantSingh)
    • Proto messaging support (#3638 by @tudorcebere)
    • BaseDataset proto support (#3641 by @tudorcebere & @karlhigley)
    • Add iterable behavior for PointerTensor (#3659 by @gmuraru)
    • Add connection speed test for workers (#3609 by @vkkhare)
    • Add mean and var methods for AST (#3682 by @LaRiffle)
    • Add new gradient functions to Autograd (#3681 by @LaRiffle)
    • Implemented Subtraction operation of FV Scheme (#3775 by @IamRavikantSingh)
    • Add a mechanism for arbitrary remote exec on Python workers (#3689 by @LaRiffle)
    • Add Multiplication operation of FV scheme. (#3711 by @IamRavikantSingh)

    Bug fixes

    • Fix federated_avg side effect (#3614 @joaolcaas)
    • serde, torch: fix typo in numpy tensor serializer. (#3644 by @shubham3121)
    • Fixed precision tensor support (#3650 by @tudorcebere & @karlhigley)
    • Fix: Copy issue with ciphertext in FV scheme. (#3672 by @IamRavikantSingh)
    • Fix dtype issues in AST (#3679 by @LaRiffle)
    • Fix decorator issues for FSS in AST (#3680 by @LaRiffle)
    • Fix bug in set_model_params() in Create Plan (#3781 @sachin-101)
    • Fix grid model hosting for large models (#3719 by @IonesioJunior)
    • Fix Plan trace for inplace ops, add Role actions pruning (#3798 by @vvmnnnkv and @LaRiffle)
    • Fix issues in handle_func_command for syft tensors (#3807 by @LaRiffle)

    Refactoring:

    • Use serde for tags serialization in PointerTensor (#3566 by @gmuraru)
    • Move torch arg hooking into the relevant classes to reduce circular imports (#3612 by @karlhigley)
    • Remove protocol parameter in decrypt (#3599 by @youben11)
    • Add utilities for hooking and chaining methods calls along tensor chain (#3636 by @karlhigley)
    • Add an __init__.py file to syft.generic.abstract (#3642 by @karlhigley)
    • Move permissions from TorchTensor.send() to PrivateTensor._before_send hook (#3643 by @karlhigley)
    • Remove owner attribute from FrameworkWrapper (#3652 by @Jasopaum)
    • Move tests for generic functionality out of test/torch/tensors dir (#3645 by @karlhigley)
    • Clean up AbstractSendable to remove extraneous methods (#3660 by @karlhigley)
    • Improve @hookable decorator to allow modifying return values after (#3655 by @karlhigley)
    • Adding support in msgpack for external libs. (#3653 by @tudorcebere)
    • Extract MessageHandler classes from BaseWorker (#3661 by @karlhigley)
    • Change whitelist to allow_list (#3675 by @karlhigley)
    • Update Operations: For non same size polynomials (#3684 @IamRavikantSingh )
    • Removed wrap() on non-tensor pointers in respond_to_search() (#3685 by @AlanAboudib)
    • feat: add plan translation to tfjs (#3371 @Nolski)
    • Update hook_args list (#3677 by @LaRiffle)
    • Customizable timeout in workers (#3760 by @youben11)
    • Serialize Plan's roles and base_framework fields (#3801 by @vvmnnnkv and @gmuraru)
    • Grid module architecture refactoring (#3818 by @hericlesme)

    Docs & tutorials:

    • Update CODEOWNERS file to reflect new team names (#3620 by @karlhigley)
    • Update Part 11 - Secure Deep Learning Classification.ipynb (#3444 by @znreza)
    • Simplify encrypted aggregation in the tutorials (#3666 by @bobsonlin26 )

    Tests & CI

    • Delete pull_request_template.md by @cereallarceny
    • Register the translation mark with PyTest to suppress warnings (#3618 by @karlhigley)
    • Update requirements.txt with tornado compatible notebook version (#3606 by @rajathpatel23)
    • Update the label used to mark stale issues/PRs (#3630 by @karlhigley)
    • Added functionality to create a cluster using autoscale API (#3637 @rimijoker)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.6(May 24, 2020)

    PySyft 0.2.6 Release Notes

    Breaking changes since v0.2.5:

    • Message.contents field has now been fully removed after previous deprecation (#3477 by @karlhigley)
    • TrainConfig has been fully removed (#3532 by @karlhigley)

    New functionality:

    • Add initial support for auto-scaling PyGrid workers and notebooks on Google Cloud Platform (#3437 and #3483 by @rimijoker)
    • Add asynchronous send_command method to WebsocketClient (#3454 by @LaRiffle and @Syzygianinfern0)
    • Build Protocol Roles from @func2protocol decorator (#3488 by @Jasopaum)
    • Trace CommunicationActions into Protocol Roles (#3448 by @Prtfw)
    • Add a reset() method on Role (#3495 by @Jasopaum)
    • Add Plan argument type-checking along with support for lists and dicts as Plan arguments (#3386 by @tudorcebere)
    • Support additional ML/DL frameworks during Plan tracing (#3461 by @gmuraru)
    • Provide a way to trace module-level methods like torch.rand() into Plan/Protocol Roles (#3522 by @karlhigley)
    • Allow Protocol Roles to have State for initial values (#3499 by @Jasopaum)
    • Add ability to seed the Syft IdProvider and safely toggle verbose mode (#3457 by @SyzygianInfern0)
    • Add support for WebRTC connections between peer Workers (#3548 and several more by @IonesioJunior)
    • Add Protobuf serialization support for torch.dtype, syft.generic.String, and PointerDataset (#3584, #3594, #3600 by @tudorcebere)
    • Print useful information on syft.grid.register() (#3589 by @IonesioJunior)
    • Add RoleAssignments to Protocols (#3544 by @Jasopaum)
    • Add ways to fetch Grid network peers to Network and WebRTCManager #3582 by @joaolcaas)
    • Host private datasets locally with Grid (#3596 by @IonesioJunior)
    • Add a method to return the supported ML/DL frameworks in BaseWorker (#3535 by @shubham3121)

    Bug fixes:

    • Fix the type of the allowed users parameter to PrivateTensors (#3446 by @gmuraru)
    • Fix PointerTensor.move() when the source and destination workers are the same (#3442 by @Syzygianinfern0)
    • Remove stray objects from FSS Worker/Plan initialization (#3525 by @karlhigley)
    • Fix Batchnorm for Federated Learning (#3472 by @LaRiffle)
    • Add scaffolding for Federated Learning client worker API (#3426 by @vvmnnnkv)
    • Avoid registering Grid peer Workers multiple times (#3591 by @jefersonf)
    • Remove test_spinup_time which has been flaky (#3603 by @robert-wagner)

    Refactoring:

    • Clean up Syft implementation of RNNs (#3441 by @dcato98)
    • Store logged message in BaseWorker in an unserialized format for readability (#3473 by @karlhigley)
    • Update Role.register_action() to allow registering CommunicationActions (#3465 by @karlhigley)
    • Refactor BaseWorker.send_command() to accept explicit arguments (#3487 by @shubham3121)
    • Add a SyftSerializable base class for Syft classes that need to be serialized to msgpack or Protobuf (#3386 by @tudorcebere)
    • Convert ObjectStore to a stand-alone class instead of a base class for Workers (#3484 by @karlhigley)
    • Extract @abstractmethods from BaseWorker to AbstractWorker (#3519 by @karlhigley)
    • Create a VirtualWorker for each Plan/Protocol Role and use it for tracing (#3521 by @karlhigley)
    • Improve the serde interface with lazy data loaders (#3530 by @tudorcebere)
    • Split FrameworkHook into multiple parts (#3561 by @karlhigley)
    • Clean up the code style of PySyft (#3535 by @gmuraru)

    Examples and Tutorials:

    • Add an experimental notebook for how to create a Plan that trains a NN on MNIST using Syft autograd (#3567 by @vvmnnnkv)

    Translations:

    • Updates to Bengali translation of Parts 4-5, 12-13 (#3415 by @jabertuhin, #3445, #3449, #3466, and #3500 by @znreza)

    Documentation:

    • Update the Pull Request templates (#3506 by @tkrsh, #3520 by @karlhigley, additional work by @cereallarceny)

    Tests and Builds:

    • Add a check for docstring coverage to the Github builds (#3462 and #3505 by @karlhigley)
    • Remove verbose flag from code format check to highlight necessary changes (#3475 by @karlhigley)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.5(May 5, 2020)

    PySyft v0.2.5 Release Notes

    Breaking changes since v0.2.4:

    • CRTPrecisionTensor and LargePrecisionTensor have been removed (#2982 by @Yugandhartripathi)
    • Autograd for sqrt has been disabled due to garbage collection issues (#3387 by @Syzygianinfern0)
    • Support for custom dtype in SecureNN has been dropped (#3392 by @Syzygianinfern0)
    • API and attributes of Protocol have changed significantly during on-going rework (#3409 by @Jasopaum)

    New functionality:

    • Add multi-worker computation graph support to allow gradients to be calculated on tensors moved across workers (#3083 by @LaRiffle)
    • Add dropout support for SMPC (#3195 by @sukhadj)
    • Add a Chebyshev approximation for sigmoid (#3205 by @gmuraru)
    • Add host_federated_training_method to GridClient (#3253 by @hericlesme)
    • Add a protocol kwarg to encrypt() to select between MPC and Paillier HE (#3234 by @Syzygianinfern0)
    • Add device option to async_fit to enable optional GPU training on workers (#3299 by @wmlba)
    • Add Plan translation to Torchscript (#3263 and #3360 by @vvmnnnkv)
    • Make it possible to send and get datasets (#3266 by @abogaziah)
    • Add requires_grad and no_wrap kwargs to encrypt() for MPC secret sharing (#3368 @Syzygianinfern0)
    • Add buffers iterator for tensor elements of torch.nn.module (#3273 by @ratmcu)
    • Increase field size to 2**64 in AdditiveSharingTensor and FixedPrecisionTensor (#2982 by @Yugandhartripathi)
    • Add Syft version checking for Grid nodes (#3380 by @IonesioJunior)
    • Make Placeholders forward unknown methods to child tensors (#3377 by @gmuraru)
    • Add average and max-pooling with SMPC (#3399 by @abogaziah)
    • Add an initial implementation of Function Secret Sharing using Plans (#3057 by @LaRiffle)
    • Make Plan tracing work with backward() and autograd (#3383 by @vvmnnnkv)
    • Make SecureNN work with more than 3 parties (#3148 by @knexator)
    • Rework Protocols to trace multiple Roles from a single function (#3409 by @Jasopaum)

    Bug fixes:

    • Fix the Placeholder serialization (#3256 by @rotalex)
    • Remove implicit in-place fix_precision for PointerTensor ( #3271 by @sukhadj)
    • Fix overloading for torch.nn and torch.nn.functional modules (#3269 by @Syzygianinfern0)
    • Fix indexing Syft tensors with lists (#3285 by @rotalex)
    • Fix circular import and overloading in RNNs (#3286 by @Syzygianinfern0)
    • Don’t assume self is in known_workers in BaseWorker (#3370 by @karlhigley)
    • Fix memory leak in AdditiveSharingTensor operations (#3343 by @Syzygianinfern0)
    • Fix garbage collection for AutogradTensor (#3387 by @Syzygianinfern0)
    • Call native Torch functions with their original names if not overloaded (#3323 by @youben11)
    • Fix a bug in the AdditiveSharingTensor.dtype serde (#3396 by @Jasopaum)
    • Auto-register the Torchscript Plan translator (#3405 by @vvmnnnkv)
    • Fix garbage collection in BaseWorker.execute_computation_action() and Torch in-place method identification (#3403 by @Syzygianinfern0)
    • Fix a double-tracing bug in Plans (#3428 by @Jasopaum)

    Refactoring:

    • Decouple Plan methods from each other by removing temporary attributes (#3203 by @karlhigley)
    • Consolidate run_websocket_server.py files (#3225 and 3265 by @vineetjai)
    • Use PlaceholderIds in Actions and Plans instead of full Placeholders (#3223 by @Jasopaum)
    • Clean up FixedPrecisionTensor and related classes (#3253 by @sachin-101)
    • Extract a Role class from Plans (#3201 by @Jasopaum)
    • Generalize Role to any type of Action, including computation or communication (#3295 by @karlhigley)
    • Remove a redundant is_built check from Plans (#3292 by @gmuraru)
    • Remove eval from Role execution with framework package store (#3295 by @karlhigley)
    • Disambiguate method args and kwargs from arguments and local variables args_ and kwargs_ (#3314 by @karlhigley)
    • Handle Plan state tensors as arguments to Torchscript (#3361 by @vvmnnnkv)
    • Rework PlanTranslatorTorchscript so it doesn’t strip Parameters from tensor chains (#3376 by @karlhigley and @Syzygianinfern0)
    • Make Plan tracing happen from the Placeholders instead of the Torch hooks (#3303 by @Jasopaum)
    • Add a name field to CommunicationAction (#3352 by @Prtfw)
    • Remove init_plan attribute from BaseWorker to decouple from Plans (#3404 by @karlhigley)
    • Remove a value() method left over from Promises (#3418 by @Jasopaum)
    • Remove deprecated properties and methods from Plan (#3408 by @karlhigley)
    • Fix a warning about getargspec deprecation in Plans (#3421 by @gmuraru)

    Examples and Tutorials:

    • Update FL training plan notebooks to report diff to PyGrid (#3224 by @vvmnnnkv)
    • Add a tutorial on model inversion attacks (#3258 by @TTitcombe)
    • Fix typo in Grid Part 3 (#3351 by @sfmajors373)
    • Explicitly specify encryption protocol in PaillierTensor notebook (#3353 by @syzygianinfern0)
    • Fix smart_city_aggregation in Grid Part 3 notebook (#3342 by @IonesioJunior)
    • Clean up cells in Tutorial Part 13a (#3290 by @ivynasantino)

    Translations:

    • Add Pidgin translations of Parts 1-7, 9 (#3149 by @TemitopeOladokun)
    • Add Korean translations of Part 2 (#3051 by @wonderit), Part 4 (#3270 by @seungjaeryanlee)
    • Add Japanese translations of Parts 1-12 (#3182 by @kouohhashi), Part 13 (#3242 by @MADONOKOUKI)
    • Add German translations of Parts 2-8,10 (#3294 and others by @JMBehnken)
    • Add Marathi translations of Parts 1-7 (#3173 by @Noob-can-Compile)

    Documentation:

    • Update the docstrings and argument types for federated_avg method (#3251 by @danyele)
    • Add docstrings to ObjectStorage tests (#3177 by @vineeth14)
    • Fix installation command in the README (#3280 by @stephenjfox)
    • Update PointerTensor docstrings (#3379 by @jaintj95)
    • Update the CONTRIBUTING.md doc (#3414 by @Prince326)
    • Add a link the PySyft ReadTheDocs page to the README (#3412 by @lucasshenv)

    Tests and Builds:

    • Start remote worker in test suite on 0.0.0.0 instead of localhost (#3218 by @rotalex)
    • Add codecov integration (#3230 and others by @imskr)
    • Add additional code owners for automated PR review requests (#3239, #3240 by @karlhigley)
    • Run the tests in random orders to shake out flaky tests (#3127 by @karlhigley)
    • Skip the main test suite for translation-only PRs (#3328 by @karlhigley)
    • Add sklearn dependency for notebooks (#3339 and #3347 by @ucalyptus)
    • Fix missing device param in test_federated_client.py::test_fit (#3346 by @karlhigley)
    • Add dtype specification to test_pate.py::test_torch_ref_match (#3348 by @gmuraru)
    • Extract State and Translator tests from Plan tests (#3378 by @karlhigley)
    • Add tolerance to gradient clipping test (#3327 by @gmuraru)
    • Add a PR template (#3268 by @sachin-101)
    • Create a manifest file to include pip-dep/ directory for Conda package (#3420 by @systemshift)
    • Increase tolerance for sigmoid approximation tests (#3427 by @gmuraru)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.4(Mar 18, 2020)

    Changes since 0.2.3

    New functionality:

    • Added the option to compute tanh using sigmoid or Chebyshev approximation (#3113 by @gmuraru)
    • Added model parameters as a default optimizer parameter in FederatedClient (#3117 by @gconst02)
    • Added an Optims class to track remote optimizers in federated learning (#3179 by @rimijoker)
    • Added the ability to use a Plan input as an output (#3199 by @tudorcebere)
    • Added the ability to send and get Datasets (#2960 by @abogaziah)

    Refactoring:

    • Extensive improvements Plan, Placeholder, and the Torch hook (#3080 by @LaRiffle)
    • Split Operation class into separate message and action classes (#3132 and #3168 by @Jasopaum and @karlhigley)
    • Added a new message for executing non-tensor operations on remote workers (#3048 by @midokura-silvia)
    • Reworked BaseWorker's message router to use message classes in handler functions (#3175 by @Jasopaum and @karlhigley)
    • Standardized the names of command message to TensorCommandMessage, PlanCommandMessage, and WorkerCommandMessage (#3198 by @karlhigley)
    • Moved the Placeholder class to the execution package (#3211 by @karlhigley)
    • Converted existing formatted strings to f-strings for consistency and performance (#3186 by @TTitcombe
    • Replaced zstd compression library with zlib (#3150 and #3164 by @refactormyself)

    Bug fixes:

    • Fixed VirtualWorker message sending test (#3139 by @gmuraru)
    • Fixed event loop error when starting a WebsocketServerWorker in a notebook (#3196 by @imskr and #3204 by @gmuraru)
    • Stopped creating grad tensors for frozen layers (#3200 by @tudorcebere)

    Documentation:

    • Added homomorphic encryption to the Introduction section (#3135 by @LaRiffle)
    • Updated supported PyTorch version to 1.4 (#3140 by @codeboy5)
    • Added a note about support Python versions (#3154 by @J-Yash)
    • Added a note about using Python 3.7 with conda (#3162 by @teddykoker)
    • Added docstrings to callable pointer tests (#3130 by @steph-en-m)
    • Added instructions for installing TF Encrypted (#3197 by @rimijoker)

    Tutorials:

    • Fixed FL training plan tutorials and added a PyGrid FL hosting example (#3185 by @vvmnnnkv)
    • Cleaned up the tutorials directory structure (#3159 by @bicycleman15)
    • Removed a stray cell from Part 5 - Welcome to the Sandbox (#3155 by @bicycleman15)
    • Removed unnecessary requires_grad in Part 2 (#3216 by @bicycleman15)

    Translations:

    • Bengali:
      • Part 3 (#3133 by @adventuroussrv), Parts 4 and 5 (#3121 by @jabertuhin)
    • German:
      • Part 1 (#3178 by @vineetjai)

    Builds:

    • Set up code owners to automatically request reviews from the relevant OpenMined teams for various parts of the PySyft codebase (#3192 and #3215 by @karlhigley, @LaRiffle, and @AlanAboudib)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.3(Mar 2, 2020)

    Changes since 0.2.2

    New functionality:

    • Migrates PySyft to PyTorch 1.4 (#2930 by @gmuraru)
    • Implements tanh for FixedPrecisionTensors using Chebyshev approximation (#3004 by @gmuraru)
    • Adds the ability to simulate latency with VirtualWorkers (#3070 by @jefersonf)
    • Adds Protobuf serialization for Placeholders, Plans, and States (#2972 by @karlhigley)

    Refactoring:

    • Reworks Plans for smoother serialization to multiple formats (#2910 by @LaRiffle and @vvmnnnkv)
    • Moves Plans, Protocols, and States from the messaging package to the execution package (#3078 by @karlhigley)
    • Renames Operation class to OperationMessage (#3090 by @karlhigley)

    Bug fixes:

    • Fixes retrieval of the fit() result in WebsocketClientWorker (#2948 by @brandonhee)
    • Fixes numeric issues in handcrafted Conv and Pool implementations (#2945 and #2964 by @arshjot)
    • Removes an insecure eval in native tensor interpreter (#2951 by @karlhigley)
    • Fixes PyTorch JIT tracing compatibility for Plans (#2988 by @karlhigley)
    • Removes workarounds for previous versions of PyTorch (#2999 by @gmuraru)
    • Pins requests dependency specification to version 2.22.0 (#2970 by @ADMoreau)
    • Fixes interoperability of AutogradTensors with other tensors vis a vis requires_grad (#2998 by @gmuraru)
    • Improves logging, typing, and documentation of PATE implementation (#3033 by @TTitcombe)
    • Fixes a potential security issue with unsafe YAML loading (#3037 by @systemshift)
    • Raises an error when attempting to additively share FloatTensors (#3094 by @pierrepocreau)
    • Improves testing for Syft's RNN implementation (#3092 by @jimboH)
    • Changes dependency specifications to require compatible versions (#3119 by @karlhigley)
    • Fixes compatibility with msgpack 1.0 serialization library (#3067 by @IonesioJunior and #3073 by @hdodenhof)

    Documentation:

    • Adds Sphinx documentation (#3017 by @Benardi)
    • Fixes notebook test badge (#3028 by @jefersonf)
    • Adds a link to the Udacity Secure And Private AI course (#3016 by @AVJdataminer)
    • Improves instructions for developing protocol changes with syft-proto (#2818 by @refactormyself)

    Tutorials:

    • Adds model evaluation to SplitNN tutorial (#2983 by @midokura-silvia)
    • Adds a note to Part 10 FL with Secure Aggregation tutorial about hooking Numpy (#3022 by @fdroessler)

    Translations:

    • Bengali:
      • Parts 1, 2, 6, and 7 (#2938, #2942, #3052, and #3053 by @ucalyptus)
      • Parts 8, 9, 11, 12, and 12bis (#3096, #3050, #3041, #3039, and #3038 by @adventuroussrv)
    • French:
      • Part 1 (#3107 by @r0cketr1kky)
    • Hindi:
      • Parts 5, 6, 7, 13b, and 13c (#2909 and #3055 by @raheja)
      • Part 13a (#2958 by @Yugandhartripathi)
    • Italian:
      • Part 1 (#3056 by @DanyEle)
    • Portuguese:
      • Part 1 (#3035 by @MarcioPorto)
      • Parts 7, 8, and 8bis (#2977 by @joaolcaas)
      • Parts 9, 10 and 11 (#2980 by @jefersonf)
      • Parts 12 and 13a (#3015 by @marcusvlc)
      • Parts 12bis and 13b (#3020 by @hericlesme)
      • Part 13c (#3023 by @Izabellaaaq)
    • Spanish:
      • Parts 6 (#2941 by @ricardopretelt)
      • Parts 7, 8, 9, 10, 11, and 13abc (#2944, #2962, #3031 and #3032 by @arturomf94)
      • Part 12 (#2822 by @socd06)
    • Ukrainian:
      • Part 1 (#2854 by @KyloRen1)

    Builds:

    • Moves automated testing of PRs from Travis to Github Actions (#2936, #3012, and #3013 by @karlhigley and @systemshift)
    • Adds a security scan for every PR (#3036 by @systemshift)
    • Runs automated translation tests only on the notebooks that changed to speed up the builds (#3064 by @arturomf94)
    • Automatically updates the pysyft-notebook Docker image when changes are merged to master (#3030 by @linamnt)
    • Caches dependencies in Github Actions (#3124 by @imskr)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.3.a3(Feb 26, 2020)

  • v0.2.3.a2(Feb 23, 2020)

  • v0.2.3.a1(Jan 30, 2020)

    New functionality:

    • Migrates PySyft to PyTorch 1.4 (#2930 by @gmuraru)
    • Reworks Plans for smoother serialization to multiple formats (#2910 by @LaRiffle and @vvmnnnkv)

    Bug fixes:

    • Fixes numeric issues in handcrafted Conv and Pool implementations (#2945 and #2964 by @arshjot)
    • Removes an insecure eval in native tensor interpreter (#2951 by @karlhigley)
    • Fixes parameters to ObjectRequestMessage in websocket_client.py (#2948 by @brandonhee)

    Tutorial updates:

    • Bengali: Parts 1 and 2 (#2938 and #2942 by @ucalyptus)
    • Hindi: Part 13a (#2958 by @Yugandhartripathi)
    • Spanish: Parts 6, 7, and 8 (#2941, #2944, and #2962 by @ricardopretelt and @arturomf94)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.2.a1(Jan 21, 2020)

    Includes some noteworthy new functionality:

    • CUDA processing enabled in PySyft (#2735 and #2772 by @midokura-silvia)
    • A PrivateTensor type (#2709 by @IonesioJunior)
    • Promise and PromiseTensor types (#2610 by @Jasopaum)
    • A complete test suite for msgpack serialization and standardization of the serialization format (#2762 and #2812 by @vvmnnnkv)
    • An implementation of Distributed Association Scan Hammer (DASH) algorithm (#2658 by @andrelmfarias)
    • String and StringPointer types added to support NLP applications (#2684 by @AlanAboudib)
    • The ability to nest Plans within other Plans (#2791 by @gmuraru)
    • Serializability for the grad_fn in AutogradTensors (#2871 by @sukhadj)
    • PyGrid module moved to PySyft (#2760 by @IonesioJunior)
    • A NumpyTensor type (#2913 by @iamtrask)
    • Python implementations of torch.nn.Conv2d and torch.nn.AvgPool2d (#2896 by @iamtrask)
    • Approximate exp log inverse and sigmoid for SMPC (#2659 by @LaRiffle)

    Also includes updates to the tutorials:

    • A tutorial on Promises and PromiseTensors (#2786 by @Jasopaum)
    • A split neural network tutorial (#2808 by @H4LL)
    • Tutorial notebooks translated into Chinese, Spanish, Hindi, Indonesian, Korean, Portuguese, and Romanian (many PRs by @dljgs1, @Bingyy, @socd06, @ricardopretelt, @arturomf94, @darkmatter18, @Yugandhartripathi, @nggih, @wonderit, @jefersonf, and @gmuraru.)

    And finally, includes:

    • Many bug fixes, which are too numerous to list but nonetheless much appreciated!
    Source code(tar.gz)
    Source code(zip)
  • v0.2.1.a1(Jan 19, 2020)

  • v0.2.0.a2(Jan 19, 2020)

Owner
OpenMined
We're on a mission to align and incentivise all institutions to only serve the best interests of humanity.
OpenMined
[ICLR 2021 Spotlight Oral] "Undistillable: Making A Nasty Teacher That CANNOT teach students", Haoyu Ma, Tianlong Chen, Ting-Kuei Hu, Chenyu You, Xiaohui Xie, Zhangyang Wang

Undistillable: Making A Nasty Teacher That CANNOT teach students "Undistillable: Making A Nasty Teacher That CANNOT teach students" Haoyu Ma, Tianlong

VITA 71 Dec 28, 2022
We will see a basic program that is basically a hint to brute force attack to crack passwords. In other words, we will make a program to Crack Any Password Using Python. Show some ❤️ by starring this repository!

Crack Any Password Using Python We will see a basic program that is basically a hint to brute force attack to crack passwords. In other words, we will

Ananya Chatterjee 11 Dec 3, 2022
Official repository with code and data accompanying the NAACL 2021 paper "Hurdles to Progress in Long-form Question Answering" (https://arxiv.org/abs/2103.06332).

Hurdles to Progress in Long-form Question Answering This repository contains the official scripts and datasets accompanying our NAACL 2021 paper, "Hur

Kalpesh Krishna 41 Nov 8, 2022
This reporistory contains the test-dev data of the paper "xGQA: Cross-lingual Visual Question Answering".

This reporistory contains the test-dev data of the paper "xGQA: Cross-lingual Visual Question Answering".

AdapterHub 18 Dec 9, 2022
QA-GNN: Question Answering using Language Models and Knowledge Graphs

QA-GNN: Question Answering using Language Models and Knowledge Graphs This repo provides the source code & data of our paper: QA-GNN: Reasoning with L

Michihiro Yasunaga 434 Jan 4, 2023
The official implementation for ACL 2021 "Challenges in Information Seeking QA: Unanswerable Questions and Paragraph Retrieval".

Code for "Challenges in Information Seeking QA: Unanswerable Questions and Paragraph Retrieval" (ACL 2021, Long) This is the repository for baseline m

Akari Asai 25 Oct 30, 2022
A pytorch implementation of Reading Wikipedia to Answer Open-Domain Questions.

DrQA A pytorch implementation of the ACL 2017 paper Reading Wikipedia to Answer Open-Domain Questions (DrQA). Reading comprehension is a task to produ

Runqi Yang 394 Nov 8, 2022
Python Interview Questions

Python Interview Questions Clone the code to your computer. You need to understand the code in main.py and modify the content in if __name__ =='__main

ClassmateLin 575 Dec 28, 2022
EMNLP'2021: Simple Entity-centric Questions Challenge Dense Retrievers

EntityQuestions This repository contains the EntityQuestions dataset as well as code to evaluate retrieval results from the the paper Simple Entity-ce

Princeton Natural Language Processing 119 Sep 28, 2022
EMNLP'2021: Simple Entity-centric Questions Challenge Dense Retrievers

EntityQuestions This repository contains the EntityQuestions dataset as well as code to evaluate retrieval results from the the paper Simple Entity-ce

Princeton Natural Language Processing 50 Sep 24, 2021
Solutions and questions for AoC2021. Merry christmas!

Advent of Code 2021 Merry christmas! ?? ?? To get solutions and approximate execution times for implementations, please execute the run.py script in t

Wilhelm Ågren 5 Dec 29, 2022
Reinforcement-learning - Repository of the class assignment questions for the course on reinforcement learning

DSE 314/614: Reinforcement Learning This repository containing reinforcement lea

Manav Mishra 4 Apr 15, 2022
Warning: This project does not have any current developer. See bellow.

Pylearn2: A machine learning research library Warning : This project does not have any current developer. We will continue to review pull requests and

Laboratoire d’Informatique des Systèmes Adaptatifs 2.7k Dec 26, 2022
Neural Magic Eye: Learning to See and Understand the Scene Behind an Autostereogram, arXiv:2012.15692.

Neural Magic Eye Preprint | Project Page | Colab Runtime Official PyTorch implementation of the preprint paper "NeuralMagicEye: Learning to See and Un

Zhengxia Zou 56 Jul 15, 2022
Facebook Research 605 Jan 2, 2023
Learning to See by Looking at Noise

Learning to See by Looking at Noise This is the official implementation of Learning to See by Looking at Noise. In this work, we investigate a suite o

Manel Baradad Jurjo 82 Dec 24, 2022
AI virtual gym is an AI program which can be used to exercise and can be used to see if we are doing the exercises

AI virtual gym is an AI program which can be used to exercise and can be used to see if we are doing the exercises

null 4 Feb 13, 2022
[CVPRW 2022] Attentions Help CNNs See Better: Attention-based Hybrid Image Quality Assessment Network

Attention Helps CNN See Better: Hybrid Image Quality Assessment Network [CVPRW 2022] Code for Hybrid Image Quality Assessment Network [paper] [code] T

IIGROUP 49 Dec 11, 2022
Language Models Can See: Plugging Visual Controls in Text Generation

Language Models Can See: Plugging Visual Controls in Text Generation Authors: Yixuan Su, Tian Lan, Yahui Liu, Fangyu Liu, Dani Yogatama, Yan Wang, Lin

Yixuan Su 195 Dec 22, 2022