我一直在进行各种使用深度学习的项目。
到目前为止,我已经能够使用 google colab、我自己的机器(Windows)或 paperspace 进行操作。
现在,我需要使用一个显然只能安装在 Linux 上的 nvidia 库(或者至少我不知道如何使其符合 Windows 标准)。
因此,我正在考虑使用 AWS Nvidia AMI 来准备好一台可以满足我所有需要的机器。
但是,我从未见过有人讨论过一个问题:如何使用 Amazon EC2 实例进行开发?因为默认情况下您只能获得命令行界面。而且我曾尝试获取 Linux EC2 实例的远程视图,但速度相对较慢。
所以我想知道:人们通常是如何处理这个问题的?
当我在我的 Windows 机器上时,我使用 VScode 开发我的软件:版本控制、交互式调试……这非常方便。
如何在 AWS 上执行此操作?还是我遗漏了什么?也许人们不会在 AWS 上调试,而只会在软件完全准备就绪时才使用 AWS?但就我而言,我无法做到这一点,因为我没有 Linux 机器,所以我无法在本地开始开发,然后转移到 AWS。
答案1
如何使用 Amazon EC2 实例进行开发?因为默认情况下您只能获得命令行界面。
即使不知道 AWS Nvidia AMI 映像具体有哪些可用选项,也可以从命令行环境进行至少一些开发。也就是说,命令行文本编辑器、版本控制软件、linters、调试器等确实存在。
当我在 Windows 机器上时,我使用 VSCode 开发我的软件:版本控制、交互式调试……这非常方便。
以下是一些用于执行类似功能的命令行软件示例。也可能存在其他解决方案。无论如何,据我所知,AWS AMI 映像允许您修改它们。因此,如果您希望使用的特定软件不在默认映像中,则很可能可以添加(安装)。
例子
編輯
vi
(Vim) 是 Linux 中经常包含的命令行文本编辑器。您还可以使用其他命令行编辑器(例如Emacs),但 Vim 功能强大,相对普遍,可以说非常适合编程。可以做以下事情从 Vim 运行 Python 代码或者打开行号(:set number
在 Vim 中),例如。
版本控制
根据您使用的版本控制系统,可能会有一个命令行界面。例如,如果已安装 Git 和 Mercurial,则可以完全通过命令行(分别通过git
和)使用它们。hg
语法检查
皮林特和薄片8可能是用于 linting 等的最广泛使用的 Python 模块,并且都可以从命令行使用(例如,分别是pylint script.py
和flake8 script.py
)。
调试
Python 自带数据库,它“为 Python 程序定义了一个交互式源代码调试器”。它可以直接从命令行使用(例如使用python -m pdb script.py
或python3 -m pdb myscript.py
),也可以直接从脚本触发(使用import pdb
和pdb.set_trace()
)。你可能想看看这个Digital Ocean 的基本 pdb 教程如果你想看一些如何pdb
直接使用的简单示例。
值得一提的是,上面列出的所有项目都是跨平台的,也就是说,您可以在 Windows 上练习它们(根据需要)。请注意,虽然 Vim 通常vi
在 Linux 上使用,但它vim
在 Windows 上使用。