Giter Club home page Giter Club logo

courses's People

Contributors

cereallarceny avatar mcleonard avatar yemikifouly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

courses's Issues

Multiple states possible for course filter buttons, clearing them does not reset button states

Description

The skill level filter buttons on the courses page mistakenly allow multiple options, and clicking "clear filters" does not reset the button states.

How to Reproduce

  1. Go to courses.openmined.org/courses
  2. Click on one of the skill level buttons ("beginner", "intermediate", "advanced")
  3. Click on the other skill level buttons
  4. Click "clear filters"
  5. See error

Expected Behavior

  1. Since each course only has one skill level, I would expect the filter buttons to only allow one selection at a time.
  2. I would expect the "clear filter" selection to reset the filter button states.

Screenshots

Screen Shot 2021-01-21 at 7 06 37 AM

System Information

  • OS: Mac OS Catalina
  • OS Version: v10.15.7
  • Browser: Brave
  • Browser Version: v1.19.86

Unable to import pysyft: AttributeError: 'Globals' object has no attribute 'pandas'

Description

I followed the instructions to the Federated Learning exercise in the Foundations of Private Computation course. I tried setting up the conda environment to run the tutorial code, following issues such as #423. However, I am still unable to import the syft library.

How to Reproduce

  1. Followed instructions according to this site. Installation using conda and the conda environment.yml file provided.
  2. Run
import syft as sy
  1. Error
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[2], line 1
----> 1 import syft as sy

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/__init__.py:59
     57 from syft.core.node.vm.vm import VirtualMachineClient  # noqa: F401
     58 from syft.core.plan.plan import Plan  # noqa: F401
---> 59 from syft.core.plan.plan_builder import make_plan  # noqa: F401
     60 from syft.experimental_flags import flags  # noqa: F401
     61 from syft.grid.client.client import login  # noqa: F401

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/plan/plan_builder.py:15
     12 from .plan import Plan
     14 PLAN_BUILDER_VM: PlanVirtualMachine = PlanVirtualMachine(name="plan_vm")
---> 15 ROOT_CLIENT: Client = PLAN_BUILDER_VM.get_root_client()
     18 def build_plan_inputs(forward_func: Callable) -> Dict[str, Pointer]:
     19     signature = inspect.signature(forward_func)

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/node/common/node.py:289, in Node.get_root_client(self, routes)
    288 def get_root_client(self, routes: Optional[List[Route]] = None) -> ClientT:
--> 289     client: ClientT = self.get_client(routes=routes)
    290     self.root_verify_key = client.verify_key
    291     return client

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/node/common/node.py:277, in Node.get_client(self, routes)
    274     setattr(solo, "name", f"Route ({self.name} <-> {self.name} Client)")
    275     routes = [solo]
--> 277 return self.client_type(  # type: ignore
    278     name=self.name,
    279     routes=routes,
    280     network=self.network,
    281     domain=self.domain,
    282     device=self.device,
    283     vm=self.vm,
    284     signing_key=None,  # DO NOT PASS IN A SIGNING KEY!!! The client generates one.
    285     verify_key=None,  # DO NOT PASS IN A VERIFY KEY!!! The client generates one.
    286 )

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/node/vm/client.py:34, in VirtualMachineClient.__init__(self, name, routes, vm, network, domain, device, signing_key, verify_key)
     23 def __init__(
     24     self,
     25     name: Optional[str],
   (...)
     32     verify_key: Optional[VerifyKey] = None,
     33 ):
---> 34     super().__init__(
     35         name=name,
     36         routes=routes,
     37         network=network,
     38         domain=domain,
     39         device=device,
     40         vm=vm,
     41         signing_key=signing_key,
     42         verify_key=verify_key,
     43     )
     45     self.post_init()

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/node/common/client.py:91, in Client.__init__(self, name, routes, network, domain, device, vm, signing_key, verify_key)
     88 else:
     89     self.verify_key = verify_key
---> 91 self.install_supported_frameworks()
     93 self.store = StoreClient(client=self)

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/core/node/common/client.py:124, in Client.install_supported_frameworks(self)
    123 def install_supported_frameworks(self) -> None:
--> 124     self.lib_ast = create_lib_ast(client=self)
    126     # first time we want to register for future updates
    127     self.lib_ast.register_updates(self)

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/lib/__init__.py:244, in create_lib_ast(client)
    238 lib_ast.syft.core.add_attr(
    239     "remote_dataloader", remote_dataloader_ast.syft.core.remote_dataloader
    240 )
    242 # let the misc creation be always the last, as it needs the full ast solved
    243 # to properly generated unions
--> 244 union_misc_ast = getattr(getattr(create_union_ast(lib_ast, client), "syft"), "lib")
    245 lib_ast.syft.lib.add_attr(attr_name="misc", attr=union_misc_ast.attrs["misc"])
    247 return lib_ast

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/lib/misc/__init__.py:92, in create_union_ast(lib_ast, client)
     84 classes.append(
     85     (
     86         f"syft.lib.misc.union.{klass.__name__}",
   (...)
     89     )
     90 )
     91 union_types = lazy_pairing[klass]
---> 92 allowed_functions = get_allowed_functions(lib_ast, union_types)
     93 for target_method, allowed in allowed_functions.items():
     94     if not allowed:

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/lib/misc/__init__.py:67, in get_allowed_functions(lib_ast, union_types)
     65 for union_type in union_types:
     66     real_type_function_set = solve_real_type_functions(union_type)
---> 67     ast_type_function_set = solve_ast_type_functions(union_type, lib_ast)
     68     rejected_function_set = real_type_function_set - ast_type_function_set
     69     for accepted_function in ast_type_function_set:

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/cachetools/__init__.py:737, in cached.<locals>.decorator.<locals>.wrapper(*args, **kwargs)
    735 except KeyError:
    736     pass  # key not found
--> 737 v = func(*args, **kwargs)
    738 try:
    739     cache[k] = v

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/lib/misc/__init__.py:28, in solve_ast_type_functions(path, lib_ast)
     26 root = lib_ast
     27 for path_element in path.split("."):
---> 28     root = getattr(root, path_element)
     29 return root.attrs.keys()

File ~/miniconda3/envs/openmined-courses/lib/python3.9/site-packages/syft/ast/module.py:256, in Module.__getattribute__(self, item)
    247 def __getattribute__(self, item: str) -> Any:
    248     """Get Attribute of a `module`.
    249 
    250     Args:
   (...)
    254         The value of the attribute.
    255     """
--> 256     target_object = super().__getattribute__(item)
    257     if isinstance(target_object, ast.static_attr.StaticAttribute):
    258         return target_object.get_remote_value()

AttributeError: 'Globals' object has no attribute 'pandas'

Expected Behavior

syft library to be imported without errors

Screenshots

If applicable, add screenshots to help explain your problem.

System Information

  • OS: WSL2
  • OS Version: Ubuntu 20.04.6 LTS
  • Language Version: Python 3.9.19
  • Package Manager Version: conda 24.4.0
  • Browser (if applicable): Google Chrome
  • Browser Version (if applicable): 125.0.6422.114

Additional Context

Add any other context about the problem here.

Unable to view the certificate after finishing the course "Introduction to remote datascience"

Description

Course says 100% completed but in L7 Course conclusion, When I click on "Resume" nothing happens.

How to Reproduce

You have to login into anyone's account who have completed the course and try clicking on "Resume" at the end of the course. The link seems to be broken.

Expected Behavior

It should either end the course saying "Successful completion" allow to download the certificate.

Says 100% completed and 4 months ago. Suggest to remove the 4 months ago and fix the resume broken link.

Screenshots

Screenshot 2022-05-10 at 9 18 18 AM

Link seems to be broken at "Resume".
Screenshot 2022-05-10 at 9 28 19 AM

System Information

Firefox web browser

Fix typo in Concept 16 of Modular Algebra

Description

There is a typo in the video and notebook used in the concept 16 lesson (https://courses.openmined.org/courses/foundations-of-private-computation/50502950-48c7-488c-b6d8-ea512b7fd84f/4d261b23-c978-421c-aeeb-08394339fd51). The typo is also surfaced in this discussion: #312.

Expected Behavior

Change

For random ๐‘Ž the probability for it not being a witness is 25%, therefore the probability of not finding 10 witnesses at random if ๐‘Ž is composite is 0.25^10, i.e. If no witnesses are found in 10 rounds, then the probability for ๐‘Ž being prime is 1โˆ’0.2510= 0.999999

to

For random ๐‘Ž the probability for it not being a witness is 25%, therefore the probability of not finding 10 witnesses at random if n is composite is 0.25^10, i.e. If no witnesses are found in 10 rounds, then the probability for n being prime is 1โˆ’0.2510= 0.999999

ModuleNotFoundError: No module named 'syft.core.adp.entity'

Description

ModuleNotFoundError: No module named 'syft.core.adp.entity'

How to Reproduce

  1. run
import syft as sy
from syft.core.adp.entity import Entity

dataset = {}

for person_index, test_result in enumerate(raw_data):
    data_owner = Entity(name=f'Patient #{person_index}')
    dataset[person_index] = sy.Tensor(np.ones(1, dtype=np.int32) * test_result).private(min_val=0, max_val=1, entities=data_owner)
  1. output
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/data/mutakabbir/Lightning/federated-learning/notebooks/pysyft_demo_1.ipynb Cell 2 in <cell line: 2>()
      [1](vscode-notebook-cell://ssh-remote%2B7b22686f73744e616d65223a224361726c65746f6e2d564d2d475055227d/data/mutakabbir/Lightning/federated-learning/notebooks/pysyft_demo_1.ipynb#W1sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0) import syft as sy
----> [2](vscode-notebook-cell://ssh-remote%2B7b22686f73744e616d65223a224361726c65746f6e2d564d2d475055227d/data/mutakabbir/Lightning/federated-learning/notebooks/pysyft_demo_1.ipynb#W1sdnNjb2RlLXJlbW90ZQ%3D%3D?line=1) from syft.core.adp.entity import Entity
      [4](vscode-notebook-cell://ssh-remote%2B7b22686f73744e616d65223a224361726c65746f6e2d564d2d475055227d/data/mutakabbir/Lightning/federated-learning/notebooks/pysyft_demo_1.ipynb#W1sdnNjb2RlLXJlbW90ZQ%3D%3D?line=3) dataset = {}
      [6](vscode-notebook-cell://ssh-remote%2B7b22686f73744e616d65223a224361726c65746f6e2d564d2d475055227d/data/mutakabbir/Lightning/federated-learning/notebooks/pysyft_demo_1.ipynb#W1sdnNjb2RlLXJlbW90ZQ%3D%3D?line=5) for person_index, test_result in enumerate(raw_data):

ModuleNotFoundError: No module named 'syft.core.adp.entity'

Expected Behavior

Entity should exist!!!

System Information

  • OS: Ubuntu
  • Language Version: Python 3.8
  • Package Manager Version: pip

Additional Context

packages

absl-py==1.4.0
alembic==1.8.1
ansible==6.7.0
ansible-core==2.13.7
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
ascii-magic==1.6
asttokens==2.0.5
async-timeout==4.0.2
attrs==22.1.0
backcall==0.2.0
bcrypt==4.0.1
beautifulsoup4==4.11.1
bleach==5.0.1
bokeh==2.4.3
boto3==1.26.51
botocore==1.29.69
branca==0.5.0
cachetools==5.3.0
certifi==2022.6.15
cffi==1.15.1
charset-normalizer==2.1.0
chex==0.1.6
click==8.1.3
click-plugins==1.1.1
cligj==0.7.2
cloudpickle==2.2.0
colorama==0.4.6
colorcet==3.0.1
contourpy==1.0.7
cryptography==39.0.1
cycler==0.11.0
dask==2022.10.0
dask-geopandas==0.2.0
databricks-cli==0.17.3
debugpy==1.6.2
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.6
distributed==2022.10.2
dm-tree==0.1.8
dnspython==2.3.0
docker==6.0.1
email-validator==1.3.1
entrypoints==0.4
et-xmlfile==1.1.0
etils==1.0.0
executing==0.9.1
fastjsonschema==2.16.1
filelock==3.9.0
Fiona==1.8.21
Flask==2.2.2
flatbuffers==2.0.7
flax==0.5.3
folium==0.12.1.post1
fonttools==4.34.4
forbiddenfruit==0.1.4
fsspec==2022.8.2
GeoAlchemy2==0.12.5
geopandas==0.11.1
gevent==22.10.2
gitdb==4.0.9
GitPython==3.1.29
graphviz==0.20.1
greenlet==2.0.2
gunicorn==20.1.0
hagrid==0.2.129
HeapDict==1.0.1
holoviews==1.15.1
hvplot==0.8.1
idna==3.3
importlib-metadata==5.0.0
importlib-resources==5.9.0
ipykernel==6.15.1
ipython==8.4.0
ipython-genutils==0.2.0
ipywidgets==7.7.1
itsdangerous==2.1.2
jax==0.3.14
jaxlib==0.3.14
jedi==0.18.1
Jinja2==3.1.2
jmespath==1.0.1
joblib==1.1.0
jsonschema==4.8.0
jupyter==1.0.0
jupyter-client==7.3.4
jupyter-console==6.4.4
jupyter-core==4.11.1
jupyterlab-pygments==0.2.2
jupyterlab-widgets==1.1.1
kiwisolver==1.4.4
locket==1.0.0
loguru==0.6.0
Mako==1.2.3
mapclassify==2.4.3
Markdown==3.4.1
markdown-it-py==2.1.0
MarkupSafe==2.1.1
matplotlib==3.6.3
matplotlib-inline==0.1.3
mdurl==0.1.2
mistune==0.8.4
mlflow==1.30.0
msgpack==1.0.4
munch==2.5.0
names==0.3.0
nbclient==0.6.6
nbconvert==6.5.0
nbformat==5.4.0
nest-asyncio==1.5.5
networkx==2.8.5
notebook==6.4.12
numpy==1.23.1
nvidia-cublas-cu11==11.10.3.66
nvidia-cuda-nvrtc-cu11==11.7.99
nvidia-cuda-runtime-cu11==11.7.99
nvidia-cudnn-cu11==8.5.0.96
oauthlib==3.2.2
openpyxl==3.0.10
opt-einsum==3.3.0
optax==0.1.4
packaging==21.3
pandas==1.5.2
pandocfilters==1.5.0
panel==0.14.0
param==1.12.2
paramiko==3.0.0
parso==0.8.3
partd==1.3.0
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.2.0
platformdirs==3.0.0
plotly==5.9.0
prometheus-client==0.14.1
prometheus-flask-exporter==0.20.3
prompt-toolkit==3.0.30
protobuf==3.19.5
psutil==5.9.1
psycopg2-binary==2.9.5
ptyprocess==0.7.0
pure-eval==0.2.2
pyarrow==10.0.1
pycapnp==1.2.2
pycparser==2.21
pyct==0.4.8
pydantic==1.10.4
pygeos==0.12.0
Pygments==2.14.0
PyJWT==2.6.0
Pympler==1.0.1
PyNaCl==1.5.0
pyOpenSSL==23.0.0
pyparsing==3.0.9
pyproj==3.3.1
pyrsistent==0.18.1
python-dateutil==2.8.2
pytz==2022.1
pyviz-comms==2.2.1
PyYAML==6.0
pyzmq==23.2.0
qtconsole==5.3.1
QtPy==2.1.0
querystring-parser==1.2.4
redis==4.4.2
requests==2.28.2
requests-toolbelt==0.10.1
resolvelib==0.8.1
rich==13.3.1
Rtree==1.0.0
s3transfer==0.6.0
scikit-learn==1.1.1
scipy==1.9.0
seaborn==0.12.1
Send2Trash==1.8.0
Shapely==1.8.2
six==1.16.0
smmap==5.0.0
sortedcontainers==2.4.0
soupsieve==2.3.2.post1
SQLAlchemy==1.4.46
sqlparse==0.4.3
stack-data==0.3.0
syft==0.7.0
tabulate==0.9.0
tblib==1.7.0
tenacity==8.0.1
tensorstore==0.1.31
terminado==0.15.0
threadpoolctl==3.1.0
tinycss2==1.1.1
toolz==0.12.0
torch==1.13.0
torchvision==0.14.0
torchviz==0.0.2
tornado==6.1
tqdm==4.64.0
traitlets==5.3.0
typing-extensions==4.4.0
urllib3==1.26.11
virtualenv==20.19.0
virtualenv-api==2.1.18
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.4.2
Werkzeug==2.2.2
widgetsnbextension==3.6.1
zict==2.2.0
zipp==3.8.1
zope.event==4.6
zope.interface==5.5.2

Include Conda Environment Setup Instructions

Description

Despite conda is the recommended package manager, dependencies for the course are available via pip and requirements.txt.

I thought that also having a Conda Environment file could've been handy - also to avoid any issue in setting up all the packages and corresponding versions.

Are you interested in working on this improvement yourself?

  • Yes, I am. - actually I already did ๐Ÿ˜ฌ

Additional Context

Add any other context or screenshots.

Broken Link / Section: Foundations of Private Computation: Private Set Intersection

Description

In the course, Foundations of Private Computation, the last section of the course isn't accessible. There's a broken page when you try and load Private Set Intersection.

How to Reproduce

  1. Go to Foundations of Private Computation
  2. Go all the way through the course until you
  3. Click continue from the
  4. The link is: https://courses.openmined.org/courses/foundations-of-private-computation/370facdd-9d7e-4507-81eb-d63a6491f10a
  5. See error

Screen Shot 2022-09-30 at 5 49 07 PM

Expected Behavior

Access to view the private set intersection part of the course.

Screenshots

Screen Shot 2022-09-30 at 5 50 27 PM

System Information

  • Browser (if applicable): Google Chrome
  • Browser Version (if applicable): 105.0.5195.125 (Official Build) (arm64)

Additional Context

It would be much better if students could jump around through the course. The Private Set Intersection part is what most interests me and I had to go through a LOT of course to get there, only to find that it's broken.

Unable to access OpenMined courses with older email id after changing the email in Ghost_app

Description

Seems like Ghost application and OpenMined courses webpage are connected. If a new email id is updated in Ghost application, OpenMined courses are sometimes unaccessible using old email id.

How to Reproduce

  1. Access Ghost_app using the old_email_id .
  2. Now, when accessing Ghost_app using old_email_id , try changing the email address to new_email_id.
  3. Now try to access OpenMined courses webpage using email old_email_id. It gives an error.

Expected Behavior

Sometimes it allows using the older email id and sometimes it does not.

Screenshots

  1. Error-1 when accessing OpenMined courses page with Old_email_id after changing to new email address in Ghost application

Screenshot 2022-10-10 at 3 30 44 PM

  1. Error-2 when accessing Old_email_id

Oldemailid_IDBDatabase error

  1. Error 2 when accessing new_email_id sometimes, it pops the same Error 2

Newemailid_IDBDatabase error

System Information

  • OS: Mac
  • OS Version: Monterey
  • Language Version:
  • Package Manager Version:
  • Browser (if applicable):Firefox
  • Browser Version (if applicable): 105.0.3 (64-bit)

[IntroRemoteDS-pre] Execution Cell Count & Output not cleared in L3_DataPreparation

Description

Cell output (and corresponding cell execution count) have not been cleared in L3_DataPreparation.ipynb notebook.

Just noticed as I started working on Lesson 3 in the course Pre-release :)

Are you interested in working on this improvement yourself?

  • Yes, I am.

Additional Context

Also execution counts are not in consecutive order, so this might be even more confusing.

Happy to send a PR myself, but I think it would be quicker if you'd prefer doing it on your end.

HTH

Never-ending loading screen on OpenMined Courses

Description

Never-ending loading screen on courses. I'm currently in progress doing "Our Privacy Opportunity" and haven't done the other courses yet, but this seems to be an issue with the overall OpenMined course web. It seems the problem is specific for Safari, as while using Chrome this rarely happens.

Most of the time, re-entering the course link or opening it in a new tab will work, but sometimes it's just stuck.

Not sure which repo to put the issue in, but in the meantime I'm placing it here. Apologies if this is mistaken.

How to Reproduce

  1. Go to https://courses.openmined.org/courses/our-privacy-opportunity or a specific course e.g. https://courses.openmined.org/courses/our-privacy-opportunity/6f8f8e3f-e379-4ed5-8861-0c82661809c3/0e399a6c-b7ef-44d1-8bfc-cd7627bff97c
  2. Wait

Expected Behavior

Loading to finish

Screenshots

Loading screen:
image

System Information

  • OS: MacOS
  • OS Version: Sonoma 14.4.1
  • Browser (if applicable): Safari
  • Browser Version (if applicable): Version 17.4.1 (19618.1.15.11.14)

Can I get script of videos? I want to translate to Korean!

From here: #82

Hi my name is Dongjun Min from South Korea.

Thanks for make this awesome lectures.
I love to use Pysyft and big interested in Private AI.

So I highly recommended my friends, colleagues and Korean community to enroll in this course.

However, since the lectures are in English and there is no script, I thought it would be a little difficult for my friends who are not proficient in English.

So, if you provide the script, I would like to translate it into Korean and share it. This is a kind of voluntary and attempting to participate as part of a community.

Oh and finally...
Best wishes for a Happy New Year!

Converting the course to an audiobook

Feature Description

From here: #220

Is your feature request related to a problem?

No. Just a suggestion.

Additional Context

Because the course is not technical, the suggestion is to consider converting it to an audio book that can be easily shared and consumed by a greater audience.

ERROR: syft from git+http://github.com/OpenMined/PySyft@dev#egg=syft does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.

Description

when I run pip install git+http://github.com/OpenMined/PySyft@dev#egg=syft, I encounter an install bug: ERROR: syft from git+http://github.com/OpenMined/PySyft@dev#egg=syft does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.

Collecting syft
  Cloning http://github.com/OpenMined/PySyft (to revision dev) to /tmp/pip-install-bkn6q54r/syft_a4d7880d538546e6b1ae6e19c7bb0821
  Running command git clone --quiet http://github.com/OpenMined/PySyft /tmp/pip-install-bkn6q54r/syft_a4d7880d538546e6b1ae6e19c7bb0821
  Resolved http://github.com/OpenMined/PySyft to commit 51bb412427829dbd3babeb67cd28157540bd7467
ERROR: syft from git+http://github.com/OpenMined/PySyft@dev#egg=syft does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.

Any help is welcome!

Federated Learning | Concept 24 FL for MNIST

Description

When the DS launch up a remote training, on DO side, report "TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first."

How to Reproduce

  1. run the code line-by-line, everything works fine, until arriving to PART 3: Training. (I have a GPU and CUDA )
  2. Training will stop at epoch 1 and no progress anymore.
  3. on DO side I can see the error report as above "TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first."

Expected Behavior

This is a classic issue for general ML and I can find solution, but how to handle this by using FL lib (by which the training happen on DO side actually)

System Information

  • OS: ubuntu18.04
  • Language Version: Python:3.7.10, torch:1.8.1, torchvision:0.9.1
  • Package Manager Version: [e.g. conda 4.11.0, pip 21.2.2 ]

Courses are not accessible on iphone or ipad and Safari takes more than a minute

Description

Unable to access the courses on iphone or ipad safari browser. Safari takes more than a minute to open any course once clicked on it.

Are you interested in working on this improvement yourself?

  • Yes but would need help.

Screenshot taken on Safari. Same issue in Iphone or Ipad.

Keeps streaming(Please note the time in the right top corner)
Screenshot 2022-05-10 at 9 36 39 AM
Keeps streaming
Screenshot 2022-05-10 at 9 40 19 AM

Jupyter Notebook server doesn't start

Description

After creating the environment as detailed here starting the Jupyter server is throwing an error.

How to Reproduce

  1. Create the environment as described here. (Foundations of Private Computation course, Lesson 1, Duet Exercises: Setup)

  2. On running jupyter notebook below error is encountered.
    ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/home/rajesh/Documents/openmined/syft-env/lib/python3.8/site-packages/markupsafe/__init__.py)

Expected Behavior

We should be able to start the Jupyter server on running jupyter notebook

Screenshots

Screenshot from 2022-08-22 21-43-50

System Information

  • OS: Linux
  • OS Version: Ubuntu 20.10
  • Language Version: Python 3.8
  • Package Manager Version: venv

Additional Context

It's caused because the latest releases of markupsafe have removed soft_unicode. Downgrading this library to 2.0.1 solves the issue.

Classifying the wrong image in federated learning duet_mnist url_image example

Description

In federated-learning -> duet_mnist -> MNIST_Syft_Data_Scientist notebook, the function classify_url_image does not really classify the received image's url, it predicts the value of image_1 which is an example from the test dataset.

How to Reproduce

  1. Go to 'federated-learning/duet_mnist/MNIST_Syft_Data_Scientist.ipynb'
  2. Scroll down to 'classify_url_image', notice that the function only shows the received image in line plt.imshow(im, ..., but predicts a different one in line class_num, preds = classify_local(image_1, local_model)

Expected Behavior

The expected behavior is that the function downloads the given image image_url, displays it, and predicts the digit that it represents.

Screenshots

image

Duplicate word "to" in solution of quiz of Lesson 2 Concept 8

"Correct - sometimes satisfying privacy is about forcing companies to to share or delete your data in a specific way or at a specific time."

Originally posted by @abulyomon in #107

The correct sentence should be: "Correct - sometimes satisfying privacy is about forcing companies to share or delete your data in a specific way or at a specific time."

Lesson 8: Homomorphic Encryption Introductions --- can not go to next lesson

Description

can not go to the next lesson from Lesson 8: Homomorphic Encryption Introductions

https://courses.openmined.org/courses/foundations-of-private-computation/eef7a738-d233-4f42-898b-95689c4ab352/cd50f10e-9427-4348-9aff-c9e2c267bc31

How to Reproduce

  1. Go to 'https://courses.openmined.org/courses/foundations-of-private-computation/eef7a738-d233-4f42-898b-95689c4ab352/cd50f10e-9427-4348-9aff-c9e2c267bc31'
  2. Click on 'next'
  3. the click is disabled
  4. "It shows tooltip "Scroll down and make sure to complete all quiz questions first!"
  5. but there is no quiz

[IntroRemoteDS-pre] Accessing Data in L3_DataPreparation Notebook is different from Course Script

Description

In current version of the notebook, the data is accessed directly from GitHub:

#Load data 
import pandas as pd 

raw_data = pd.read_csv("https://raw.githubusercontent.com/OpenMined/PySyft/dev/notebooks/course3/dataset/L3_data.csv")

whereas the snippet shown in the C3L3C2 - Data Acquisition! is:

# Load data
import pandas as pd
raw_data = pd.read_csv("dataset/L3_raw_data.csv")
raw_data.head()

I do appreciate opening the data from GitHub (esp. if running the notebook in Colab) but it's a bit pointless if running the code from local Jupyter.

Therefore, I resorted changing my own notebook replacing with the following line:

# Load data

import pandas as pd
from pathlib import Path 
from os import path as p

BASE_FOLDER = Path(p.abspath(p.curdir))
DATA_FOLDER = BASE_FOLDER / "dataset"
if DATA_FOLDER.exists():
    datafile_ref = DATA_FOLDER / "L3_raw_data.csv"
else:
    datafile_ref = "https://raw.githubusercontent.com/OpenMined/PySyft/dev/notebooks/course3/dataset/L3_data.csv"

raw_data = pd.read_csv(datafile_ref)

Are you interested in working on this improvement yourself?

  • Yes, I am.

That's just a suggestion.
Feel free to close and reject the issue, if you'd prefer keep it otherwise :)

Error while trying to import pysyft in lesson 1 Duet Basics (Foundations course)

I followed all the steps mentioned in the discussions and i still have this problem:

Discussed in #273

Originally posted by cbs-rschreijen March 17, 2021
Hi,

I setup a virtual environment (tried both conda and venv), activated it and installed pip requirements per course instruction. When running the notebooks for the Duet Basics demo I get an error at the first statement in both notebooks while loading the pysyft library (same error). I am running on macOS 11.1 Big Sur.


AttributeError Traceback (most recent call last)
in
----> 1 import syft as sy

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/init.py in
59 from syft.core.common.serde.serialize import _serialize as serialize # noqa: F401
60 from syft.core.node.common.service.repr_service import ReprMessage # noqa: F401
---> 61 from syft.core.node.device.device import Device # noqa: F401
62 from syft.core.node.device.device import DeviceClient # noqa: F401
63 from syft.core.node.domain.domain import Domain # noqa: F401

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/core/node/device/init.py in
1 # syft relative
----> 2 from .client import DeviceClient
3 from .device import Device
4
5 all = ["DeviceClient", "Device"]

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/core/node/device/client.py in
14 from ...io.location import SpecificLocation
15 from ...io.route import Route
---> 16 from ..common.client import Client
17
18

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/core/node/common/client.py in
18 from ....core.pointer.pointer import Pointer
19 from ....decorators import syft_decorator
---> 20 from ....lib import lib_ast
21 from ....proto.core.node.common.client_pb2 import Client as Client_PB
22 from ....proto.core.node.common.metadata_pb2 import Metadata as Metadata_PB

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/lib/init.py in
24
25 # constructor: copyType = create_lib_ast
---> 26 lib_ast = create_lib_ast()
27 lib_ast._copy = create_lib_ast

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/lib/init.py in create_lib_ast()
10
11 python_ast = create_python_ast()
---> 12 torch_ast = create_torch_ast()
13 torchvision_ast = create_torchvision_ast()
14 # numpy_ast = create_numpy_ast()

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/lib/torch/init.py in create_torch_ast()
51 # this allows us to import them for testing
52 continue
---> 53 ast.add_path(
54 path=method, framework_reference=torch, return_type_name=return_type
55 )

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/ast/globals.py in add_path(self, path, index, return_type_name, framework_reference)
63 attr = self.attrs[framework_name]
64 if hasattr(attr, "add_path"):
---> 65 attr.add_path( # type: ignore
66 path=path, index=1, return_type_name=return_type_name
67 )

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/ast/module.py in add_path(self, path, index, return_type_name, framework_reference)
118 self.lookup_cache[attr_ref] = path
119 if hasattr(attr, "add_path"):
--> 120 attr.add_path( # type: ignore
121 path=path, index=index + 1, return_type_name=return_type_name
122 )

~/opt/anaconda3/envs/conda-env/lib/python3.8/site-packages/syft/ast/callable.py in add_path(self, path, index, return_type_name)
80 if path[index] not in self.attrs:
81
---> 82 attr_ref = getattr(self.ref, path[index])
83
84 if isinstance(attr_ref, module_type):

AttributeError: type object 'Tensor' has no attribute 'fft'

Change Emojis used in the Feedback Panel

Description

Some meta-feedback about the feedback system itself ๐Ÿ˜€ I don't understand the difference in meaning between the two symbols ๐Ÿ‘Œ and ๐Ÿ‘. Don't they both indicate liking the content, i.e. positive feedback? Or is one of them "more positive" than the other? In that case I'd guess that ๐Ÿ‘ is more positive, just based on the order; but it's unclear when we should use one and when the other.

Are you interested in working on this improvement yourself?

  • I am unable but @tcp this is a low hanging fruit one that we can batch in our next updates to the course site

Additional Context

This was originally posted by @nigoshh in the course forum โ†’ #260

Sources & References

What?

As was raised in this discussion, we should consider compiling and making public a list of resources that were used in building the educational material for our first course (Our Privacy Opportunity) thus far.


Where?

We could approach this first by compiling and surfacing a large list of sources, and look to potentially include only the relevant sources used for each video in the course, which IMO would provide better value for people who are curious like the OP of the discussion linked above. (but of course would be a separate development ticket to be tracked)

Who?

Everyone. Non-students and students of our online courses.

Additional Context

cc @iamtrask @mcleonard

Include concept number in video names

From here: #75

One very minor thing that would make this easier is if the concept numbering would be included in the video titles so the videos sort themselves.

Feedback button doesn't work

Description

First of all, great work!

One small bug: On each video, the "Give Feedback" button doesn't seem to work. Clicking on it doesn't trigger anything, and there doesn't seem to be an error in the developer console.

Screenshots

image

System Information

  • OS: Ubuntu 20.04
  • Browser (if applicable):Google Chrome

[IntroRemoteDS-pre] L3_DataPreparation: Number of Cases reported for Country zero is wrong

Where?

L3_DataPreparation.ipynb in introduction-to-remote-data-science branch.

What?

The following sentence is not aligned with actual data:

So for instance, Country 0 had 1140 COVID cases at the start of when this data was collected (row 0), and only 451 when the data was last collected (row 53).

Initial COVID cases for Country 0 is 2280 and not 1140 :)

HTH

Can't launch_duet using http://ec2-18-216-8-163.us-east-2.compute.amazonaws.com:5000/

I get this error

"ConnectionError: HTTPConnectionPool(host='ec2-18-216-8-163.us-east-2.compute.amazonaws.com', port=5000): Max retries exceeded with url: //metadata (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001B121531820>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond'))"

when I execute:
_

duet = sy.launch_duet(network_url="http://ec2-18-216-8-163.us-east-2.compute.amazonaws.com:5000/")

_

Duet server not working from tutorial 1

In first tutorial, the sy.launch_duet is giving a connection TimeoutError. Could you please update with the correct link?

My code-

duet = sy.launch_duet(network_url="http://ec2-18-216-8-163.us-east-2.compute.amazonaws.com:5000/")

notebook link - here

Error Message-

ConnectionError: HTTPConnectionPool(host='ec2-18-216-8-163.us-east-2.compute.amazonaws.com', port=5000): Max retries exceeded with url: //metadata (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f04988c9b20>: Failed to establish a new connection: [Errno 110] Connection timed out'))

Add transcripts below videos for individuals with hearing disabilities.

Feature Description

Coursera and some other course platforms provide clear transcripts below to videos to make their platform more accessible for people with different needs.

This can be useful even for other scenarios such as not being able to listen to audio due to technical limitations.

Cyclic groups code change suggestion (Modular Arithmetic - Foundations of computation)

Description

Suggestion to change the print statement that is part of "Cyclic groups" of "Modular Arithmetic"(Course: Foundations of computation).

Change print(f"{g}^{count}={prev_power}")

to #print(f"{prev_power}mod{m}, {prev_power}")

Are you interested in working on this improvement yourself?

  • Yes, I can once it is confirmed that it is fine to change.

Explanation for the changes suggested:

Screenshot 2022-04-25 at 1 39 46 PM

Screenshot 2022-04-25 at 1 40 57 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.