FedML icon indicating copy to clipboard operation
FedML copied to clipboard

The compatibility issues of Nvidia Jetson

Open rekkles2 opened this issue 2 years ago • 0 comments

I think that the installation instructions for the FedML framework on the official website maybe need to be updated

  • Initially, I followed the tutorial on the official website to download the FedML framework. docker pull fedml/fedml:latest-nvidia-jetson-l4t-ml-r35.1.0-py3 The version of FedML downloaded from this mirror source was 0.7.6, but I don't remember the specific version.This version can run some official examples well, such as:(fedcv)

  • However, an error occurred when I ran my own federated learning training for anomaly detection in a computer vision surveillance scenario.I sought help from the community, and someone advised me to update my version of FedML as mine was too old. So, I used the command pip install -U fedml to update the version of FedML.

  • After updating the version, when I ran my code again, I encountered a new error related to the architecture of numpy.This is the log of my project.

fedml1

This image shows the numpy issue that occurred when my Jetson device was connected to MLOps.

The error I discovered

After updating to FedML version 0.8.17, I checked the supported versions of the related libraries and found that both the torch library and the torchvision library versions are incompatible.

"torch>=1.13.1",
"torchvision>=0.14.1",

I believe that the numpy error is likely caused by the versions of torch and torchvision within the mirror source.

My Solution

First, I re-flashed my NVIDIA JETSON device with the latest JetPack version, JetPack 5.1.2.Then, I attempted to use docker pull fedml/fedml:latest-nvidia-jetson-l4t-ml-r36.2.0-py3to pull the latest mirror source and download FedML.But I was unable to download using this command line.

  • I first pulled the latest version of the mirror source using the command sudo docker pull nvcr.io/nvidia/l4t-ml:r36.2.0-py3
  • Then, I opened an interactive container by running the command sudo docker run -it nvcr.io/nvidia/l4t-ml:r36.2.0-py3 /bin/bash
  • downloaded the latest version of the FedML framework by using the command pip install fedml==0.8.17

updated the contents of the container to create a new image:

  • Open a new terminal and enter the following command: sudo docker ps
  • Copy the ID of the container and enter the following command: sudo docker commit <container_id> <image_new_name>

To enter the newly saved image, for example, if the name of the new image is "fedml"

  • Please enter the following command: sudo docker run -t -i --runtime nvidia fedml /bin/bash
  • Then connect to MLOps using the command: fedml login $account_id
  • If You encounter an issue where "/bin/sh: python: not found" error appears:
ls -l /usr/bin/python*
ln -s /usr/bin/python3 /usr/bin/python

This is because the path /usr/bin/python has been overwritten by Python 2 and Python 3.

Subsequent issues encountered

After updating the environment, I did not encounter any further issues with numpy. But I encountered a new problem.

fedml2

rekkles2 avatar Jan 23 '24 18:01 rekkles2