我必须在只能通过ssh从PC访问的远程GPU上训练GAN(使用pytorch用Python编码),但我有一个自定义数据集(无法从任何地方下载),该数据集存储在没有GPU的PC。
我在Google上进行了非常深入的搜索,并尝试使用scp
命令(这是我找到的唯一解决方案),但是似乎数据集太大,无法在可接受的范围内发送时间(大小为13GB)。
考虑到我无法通过ssh
连接以外的任何其他方式访问PC来训练网络,如何在相当长的时间内将数据集与GPU传输到PC?此外,培训完成后,如何检索state_dict()
并将其存储到PC中?
答案 0 :(得分:1)
它与数据集本身无关。您可以使用Rsync使用SSH
将文件从PC传输到远程服务器,反之亦然,这意味着您也可以将数据/文件夹从远程服务器传输到本地PC。
Rsync是一个实用程序,通过比较文件的修改时间和大小,可以在计算机与外部硬盘驱动器之间以及在联网的计算机之间高效地传输和同步文件。它也非常适合通过ssh传输大文件,因为它可以从先前中断的传输中恢复。
来自here:
rsync
通常用于同步文件和目录 在两个不同的系统之间。例如,如果运行命令rsync local-file user@remote-host:remote-file
,则rsync
将使用SSH
以用户身份连接到远程主机。[7]连接后,它将 调用远程主机的rsync
,然后这两个程序将 确定需要传输本地文件的哪些部分,以便 远程文件与本地文件匹配。
与cp
,rcp
和scp
类似,rsync
要求指定源和目的地,其中至少一个必须是本地的。>
通用语法:
rsync [OPTION] … SRC … [USER@]HOST:DEST
rsync [OPTION] … [USER@]HOST:SRC [DEST]
其中 SRC 是要从中复制的文件或目录(或多个文件和目录的列表), DEST 是要复制到的文件或目录,括号表示可选参数。
简单示例:
以下命令会将目录dataset
中的所有文件传输到远程服务器中的home
目录中:
rsync -avz dataset/ root@192.168.0.101:/home/
-avz开关选项仅意味着以存档模式压缩和传输文件,并在屏幕上显示进度:
Common options :
-v : verbose
-r : copies data recursively (but don’t preserve timestamps and permission while transferring data
-a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user & group ownerships and timestamps
-z : compress file data
-h : human-readable, output numbers in a human-readable format
您也可以阅读更多here。