Conexión manual a una instancia de notebook con PyCharm
Un IDE local admite PyCharm y VS Code. Puede utilizar VS Code o PyCharm para conectar remotamente el IDE local a la instancia de notebook de destino de ModelArts para ejecutar y depurar el código.
En esta sección se describe cómo utilizar PyCharm para acceder a una instancia de notebook.
Requisitos previos
- PyCharm professional 2019.2 o posterior se ha instalado localmente. La edición profesional de PyCharm está disponible porque SSH remoto solo se aplica a la edición profesional.
- Se ha creado una instancia de notebook con SSH remoto habilitado. Asegúrese de que la instancia se está ejecutando. Para obtener más detalles, véase Creación de una instancia de notebook.
- La dirección y el número de puerto del entorno de desarrollo están disponibles. Para obtener esta información, vaya a la página de detalles de la instancia del notebook.
Figura 1 Página de detalles de la Instancia
- El par de claves está disponible.
Un par de claves se descarga automáticamente después de crearlo. Guárdelo de forma segura. Si se pierde un par de claves existente, cree uno nuevo.
Paso 1 Configurar SSH
- En su entorno de desarrollo de PyCharm local, elija File > Settings > Tools > SSH Configurations y haga clic en + para agregar una configuración de SSH.
- Host: la dirección para acceder al entorno de desarrollo en la nube. Obtenga la dirección en la página que proporciona la información detallada de la instancia del notebook de destino.
- Port: número de puertos para acceder al entorno de desarrollo en la nube. Obtenga el número de puerto en la página que proporciona la información detallada de la instancia del notebook de destino.
- User name: se establece de forma consistente en ma-user.
- Authentication type: par de claves
- Private key file: el archivo de clave privada almacenado localmente del entorno de desarrollo en la nube. Es el archivo de par de claves que se descarga automáticamente al crear la instancia del notebook.
- Haga clic en para cambiar el nombre de la conexión. Luego, haga clic en OK.
- Una vez completada la configuración, haga clic en Test Connection para probar la conectividad.
- Seleccione Yes. Si se muestra "Successfully connected", se puede acceder a la red. Luego, haga clic en OK.
- Haga clic en OK en la parte inferior para guardar la configuración.
Paso 2 Obtener la ruta al entorno virtual integrado en el entorno de desarrollo
- Elija Tools > Start SSH Session para acceder al entorno de desarrollo en la nube.
- Ejecute el siguiente comando para ver los entornos virtuales de Python construidos en el entorno actual en el archivo README en /home/ma-user/:
cat /home/ma-user/README
- Ejecute el comando source para cambiar a un entorno específico de Python.
- Ejecute which python para obtener la ruta de Python y cópiela para configurar el intérprete de Python en la nube.
Paso 3 Configurar un intérprete de Python
- Elija File > Settings > Project: Python project > Python Interpreter. A continuación, haga clic en y Add para agregar un intérprete.
- Seleccione Existing server configuration en la lista desplegable, elija la configuración de SSH y haga clic en Next.
- Configure el intérprete de Python.
- Interpreter: introduzca la ruta de Python copiada en el paso 1, por ejemplo, /home/ma-user/anaconda3/envs/Pytorch-1.0.0/bin/python.
Si la ruta de acceso es ~/anaconda3/envs/Pytorch-1.0.0/bin/python, reemplace ~ por /home/ma-user.
- Sync folders: establezca este parámetro en un directorio en el entorno de desarrollo en la nube para sincronizar archivos de directorio de proyectos locales. Se recomienda un directorio de /home/ma-user, por ejemplo, el /home/ma-user/work/projects porque otros directorios pueden tener prohibido el acceso.
- Interpreter: introduzca la ruta de Python copiada en el paso 1, por ejemplo, /home/ma-user/anaconda3/envs/Pytorch-1.0.0/bin/python.
- Haga clic en ! a la derecha y seleccione Automatically upload para que el archivo modificado localmente se pueda cargar automáticamente en el contenedor.
- Haga clic en Finish.
El archivo de proyecto local se ha cargado automáticamente en el entorno de nube. Cada vez que se modifica un archivo local, la modificación se sincroniza automáticamente con el entorno de nube.
En la esquina inferior derecha, el intérprete actual se muestra como un intérprete remoto.
Figura 4 Configuración de un intérprete de Python
Paso 4 Instalar la biblioteca dependiente para el entorno de nube
Después de acceder al entorno de desarrollo, puede utilizar diferentes entornos virtuales, como TensorFlow y PyTorch. Sin embargo, en el desarrollo real, es necesario instalar paquetes de dependencias. A continuación, puede acceder al entorno a través de la terminal para realizar operaciones.
Seleccione Tools > Start SSH Session y seleccione el entorno de desarrollo configurado. Ejecute el comando pip install para instalar los paquetes de dependencias requeridos.
Paso 5 Código de depuración en el entorno de desarrollo
Ha accedido al entorno de desarrollo en la nube. Luego, puede escribir, depurar y ejecutar el código en el PyCharm local. El código se ejecuta realmente en el entorno de desarrollo en la nube y se utilizan los recursos de AI de Ascend en la nube. De esta manera, compile y modifique el código localmente y ejecute el código en la nube.
Ejecute el código en el IDE local. Los logs se pueden mostrar localmente.
Haga clic en Run/Debug Configurations en la esquina superior derecha del IDE local para establecer los parámetros de tiempo de ejecución.
Para depurar código, establezca puntos de interrupción y ejecute el programa en modo de depuración.
En modo de depuración, la ejecución de código se suspende en la línea especificada, y puede obtener valores de variables.
Antes de depurar código en modo de depuración, asegúrese de que el código local es el mismo que el código de la nube. Si son diferentes, la línea donde se agregue localmente un punto de interrupción puede ser diferente de la línea del código de nube, lo que lleva a errores.
Al configurar un intérprete de Python en el entorno de desarrollo de la nube, seleccione Automatically upload para que cualquier modificación de archivo local se pueda cargar automáticamente en la nube. Si no selecciona Automatically upload, cargue manualmente el directorio o código después de modificar el código local. Para obtener más detalles, véase Paso 6 Cargar archivos locales en la instancia de notebook.