1
VisionTheta 2018-11-13 17:51:55 +08:00
额 同步代码的工具等楼下来推荐。不过,如果本地能加一张显卡,哪怕 1080 这种,就可以满足本地调试吧。然后需要大规模训练了,再发布到服务器上。
|
2
whileFalse 2018-11-13 19:29:29 +08:00 via iPhone
服务器装个桌面?
试试 cloud9 私有部署? |
3
kinghero OP @感谢回复!确实,本地调试好上服务器大规模训练确实是一种比较好的方法。还有一台 PC 机是有 1070 显卡的,基本上 debug 是没问题的。但是 Ubuntu 下桌面办公还是没 windows 和 macos 好用,所以基本上也是远程连接这台机子。或者有时候需要用笔记本连接到这个机器,又会遇到一样的问题。
@whileFalse 好的,我了解一下,感谢! |
4
kinghero OP @VisionTheta 感谢回复!确实,本地调试好上服务器大规模训练确实是一种比较好的方法。还有一台 PC 机是有 1070 显卡的,基本上 debug 是没问题的。但是 Ubuntu 下桌面办公还是没 windows 和 macos 好用,所以基本上也是远程连接这台机子。或者有时候需要用笔记本连接到这个机器,又会遇到一样的问题。
|
5
tankeco 2018-11-13 20:14:04 +08:00
方案 1,学好 vim...
|
6
yemenchun1 2018-11-13 20:51:10 +08:00
我是这样做的:
1. 我用 Jupyter Notebook 写我要调用的功能, 但实现功能的函数本身写在 py 文件里. 2. py 文件用 Jupyter Notebook 的前端文本编辑器编辑, 虽然可以, 但功能有限, 补全, 批量修改都用不了; 用 SSH 和 Vim 虽然也可以, 但是相比常用的 Pycharm, Sublime Text, 少了一些直观的感受. 所以我在 Linux 的机器上开了一个 samba 的服务, 共享 Linux 的文件夹, 再在路由器开端口映射, 最后用 MacBook 的 Finder 连接服务器的功能加载这个远程文件夹, 这样就可以用 MacBook 的 Sublime Text 或其它文本编辑器实时的编辑了. 3. py 文件每次修改了以后, 在 Jupyter Notebook 执行程序块, 但 Jupyter Notebook 导入的还是老的 py 文件, 需要添加一行%load_ext autoreload 和%autoreload 2, 这样只有写新函数的时候才需要重新执行 import 的代码块, 其余时候直接执行 py 文件修改过的函数所在的代码块就可以了. 4. Dropbox 不是不行, 而是做不到实时修改实时变化, 因为 dropbox 的同步需要一定时间, 而 samba 就完美解决了这个问题, 因为你改的代码是在远程机器上的. 5. 代码同步的问题, 你在远程 Linux 机器调好以后, 开启 Dropbox. 这也仅仅是起到备份的功能而已. |
7
kinghero OP @tankeco hh 总想学,但老感觉用起来不顺手
@yemenchun1 感谢!其实之前有用 Jupyter Notebook 执行发现每次改完函数都要重新载入整个 notebook 才能导入新文件觉得略麻烦。我试试加上这一行。听你这样子说感觉 samba 和 sshfs 功能类似,这样子的话 MacBook 也要装相应的 python 包才能实现补全等功能吧(我目前是这么实现的)。 其实我感觉 pycharm 远程调试的实现方案其实还不错,将远程目录在本地做一个备份,然后每次是直接修改本地的备份,本地修改完之后会自动上传到远程服务器,然后可以调用远程服务器进行调试。但是感觉其编辑功能还是不及 VS Code 和 Sublime Text 好用。开这个贴的也是想集思广益,看看有没有什么更好的方法。 |
8
msg7086 2018-11-14 02:42:50 +08:00
我不是写 AI 的。我们用 Syncthing 同步本地和服务器上的代码。
|
9
Rheinmetal 2018-11-14 07:20:14 +08:00
就像普通的应用一样 本地调试 然后用持续集成工具部署训练 不直接访问服务器这样不就方便了?
|
10
kinghero OP @msg7086 感谢,Syncthing 这种 P2P 的同步方式看起来好像不错,我觉得我可以使用它来同步我不同的本地环境下的代码,调试完毕再上服务器大规模训练。
@Rheinmetal 感谢!但是主要是因为我目前其实本地有好几个环境,macos、windows、ubuntu 所以可能还涉及到了代码同步问题,最终可能都是在本地的 ubuntu 下进行调试好再部署到服务器上训练。macos 和 windows 可能就作为代码编辑器来使用,还有有时候需要在外面编程,而使用过远程桌面感觉不是很好用。 |
11
locoz 2018-11-14 08:56:22 +08:00 via Android
pycharm 挺好的你又嫌笨重。。那就只能舍弃方便性了
|
12
locoz 2018-11-14 08:56:56 +08:00 via Android
不过 vscode 应该也有插件可以做到类似效果,可以找一下
|
13
SeaRecluse 2018-11-14 09:17:14 +08:00
本地调试完扔上去训练呗。你要是嫌来回改动代码麻烦,你在云端改完难道本地的不也要改吗?要不你就在云端装个桌面(没必要,本来服务器不用桌面环境就是为了避免占用额外的空间
|
14
kinghero OP @locoz pycharm 确实是一个比较好的方式哈,我不是嫌弃哈。只是单纯讨论一下几种方法,当然每个人可能都有不同的习惯!
@SeaRecluse 嗯嗯,确实本地先调试好是第一个步骤,但是本地有多台电脑,实验室的机子和个人的笔记本可能会来回切换使用,所以这之间也需要代码同步的工作。 |
15
kinghero OP 发现了一款 VS Code 不错的插件,支持各大深度学习框架的 API、操作远程机器的文件、打开 Jupyter Notebook、内建的 TensorBoard
vscode-tools-for-ai: https://marketplace.visualstudio.com/items?itemName=ms-toolsai.vscode-ai https://github.com/Microsoft/vscode-tools-for-ai |