矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现

本文主要记载一些遇到的坑和一些自己误解的概念性问题,通过对FusionGAN复现来熟悉矩池云。
本地环境:pycharm专业版23.2(只有专业版可以用ssh,社区版不可以,专业版要付费可以上桃找破解,学生可以申请免费专业版)

1、首先租赁环境

创建自己的账号,关注矩池云微信公众号,可以获得5个算力豆,初学者可以用这个来熟悉操作。矩池云大部分是Ubuntu系统下的环境,少数是windows。标记有windows图标下才有windows操作系统(上方有公测中的字样)。

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第1张图片

点击租用即可进行使用,在下单前需要先选择系统镜像,系统镜像的选择 与 你自己代码需要的环境相关,和你本地安装环境无关(与操作系统无关)。
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第2张图片

比如FunsionGAN基于tensorflow的框架进行编写的程序,那么我就需要预装带有tensorflow的环境,之前参考别的博主中提到太小的内存会报错,所以我直接选用了较大内存的显卡。
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第3张图片

第一次下单的朋友还没有创建过环境,需要在系统镜像下选择相关环境。

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第4张图片

在释放机器前,我们可以选择保存环境,这样下次使用时,我们可以选择我的环境,选择自己配置好的环境。
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第5张图片
在下单前,我们需要先上传代码到矩池云网盘,选择-工作空间-我的网盘。矩池云提供了5G的免费网盘空间,在这里我们可以预存代码和数据集,在调试代码时,网盘访问路径在 /mnt 下,通过cd指令可以查看我们上传到网盘的所有文件。在这里我们选择上传,将本地代码上传到网盘。(当然,你也可以通过git指令下载,但是这样有点浪费时间,time=money)
FusionGAN下载地址:FunsionGAN代码下载地址(下载代码到本地再上传网盘)
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第6张图片

在开始前,先将代码备份,删除数据集,只留下源代码(节省上传的同步时间)(这一步也可以不用,后面发现这个步骤相比于其他问题不算太浪费时间)

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第7张图片

在pycharm中打开该文件:

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第8张图片

选择需要的GPU开始租用,等待从启动中变为运行,如果一直没出来刷新一下页面:

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第9张图片 矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第10张图片
打开pycharm,选择flie-settings

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第11张图片

选择project-python interpreter 右边选add interpreter

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第12张图片

选择 On SSH

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第13张图片

将矩池云中的主机、端口、用户名依次对应填入,再将密码填入

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第14张图片 矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第15张图片
选择ok和next,进入第四步

这一步没有把该改的地方全改掉会出现报错并且断连,如下图所示
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第16张图片

首先选择Virtualenv environment,点location旁边的文件图标,将地址改成

 /root/miniconda3/envs/myconda/bin/python

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第17张图片
再将base interpreter同样改成

 /root/miniconda3/envs/myconda/bin/python

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第18张图片
最后将Sync folders改成

 /mnt/.../FunsionGAN-mater
 #中间是解压后自己命名的文档

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第19张图片

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第20张图片

再进入system interpreter,将 interpreter 和s ync folders改成和上面一样的路径,修改好后点击create

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第21张图片
点击ok
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第22张图片
创建好后可以看到右下角解释器变成了服务器下的地址,接着pycharm会上传 本地文件夹下文档到 服务器的文件夹下,点击左边传输可以查看上传情况(在左下角,双箭头)。
从上传记录可以看出,连接SSH后可以自动将本地文件下的代码同步到远程服务器中,实现本地修改代码远程调试的功能,有时候如果没有及时同步,选择tool-deployment-upload to,手动同步代码。
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第23张图片

[2023/9/5 20:31] Upload to root@hz-t3.matpool.com:26634 password
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\LICENSE' to '/mnt/LICENSE'
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\main.py' to '/mnt/main.py'
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\model.py' to '/mnt/model.py'
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\README.md' to '/mnt/README.md'
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\test_one_image.py' to '/mnt/test_one_image.py'
[2023/9/5 20:31] Upload file 'C:\Users\Lenovo\Desktop\看过的文章\code\FusionGAN\FusionGAN-master\utils.py' to '/mnt/utils.py'
[2023/9/5 20:31] Upload to root@hz-t3.matpool.com:26634 password completed in 1 sec, 951 ms: 6 files transferred (25.2 kbit/s)

点击箭头选择服务器地址

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第24张图片
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第25张图片

出现如图所示

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第26张图片
输入代码进入mnt文件夹下,通过ls -a查看文件夹下文件

cd ../mnt
ls -a

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第27张图片
通过unzip解压FusionGAN.zip(名字可能不一样修改FusionGAN.zip即可)

unzip  FusionGAN.zip -d FusionGAN

解压成功
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第28张图片
在这里修改远程同步文件夹目录,选择 tool-depolyment-configuration-Mappings
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第29张图片
将地址改成新生成的地址
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第30张图片
重新上传文档,先点project(如果出现upload to是灰色的问题一定是没点project)(如果只需要更新一个代码文件就点击那一个代码再点上传),再点tool,重新上传
矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第31张图片

回到终端,通过cd指令进入文件夹

cd FusionGAN
cd FusionGAN-master

2、开始进行测试

在FusionGAN-master文件夹下,通过命令行输入

 python test_one_image.py

出现报错,提示缺少包

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第32张图片
输入

pip install scipy==1.1.0

成功安装包

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第33张图片
再次输入

 python test_one_image.py

测试成功

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第34张图片

结果保存在result中

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第35张图片

从tool中下载, tool-depolyment-download form root…

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第36张图片

可以看到成功下载到本地

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第37张图片

3、进行训练

命令行输入

python main.py

出现报错

OSError: Can't write data (file write failed:

这种报错是由于网盘大小不够引起的,由于免费的内存只有5G,新生成的.h5文件存放在网盘内并且远大于5G,导致数据溢出,这种情况只能氪金,要运行完整个程序至少要50G以上。购买50G以上的网盘内存(后面想到可以一开始就将文件挪到服务器桌面上运行,由于已经购买了空间就不进行尝试了,还没掉坑里的小伙伴可以试一下
购买足够的硬盘空间后,出现报错:

File "main.py", line 45, in main
    srcnn.train(FLAGS)
  File "/mnt/FusionGAN/FusionGAN-master/model.py", line 104, in train
    train_data_ir, train_label_ir = read_data(data_dir_ir)
  File "/mnt/FusionGAN/FusionGAN-master/utils.py", line 31, in read_data
    with h5py.File(path, 'r') as hf:
  File "/root/miniconda3/envs/myconda/lib/python3.5/site-packages/h5py/_hl/files.py", line 408, in __init__
    swmr=swmr)
  File "/root/miniconda3/envs/myconda/lib/python3.5/site-packages/h5py/_hl/files.py", line 173, in make_fid
    fid = h5f.open(name, flags, fapl=fapl)
  File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py/h5f.pyx", line 88, in h5py.h5f.open
OSError: Unable to open file (unable to open file: name = './checkpoint/Train_ir/train.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

将model.py中98、99行代码从:

if config.is_train:     
  data_dir_ir = os.path.join('./{}'.format(config.checkpoint_dir), "Train_ir","train.h5")
  data_dir_vi = os.path.join('./{}'.format(config.checkpoint_dir), "Train_vi","train.h5")

改成

if config.is_train:     
  data_dir_ir = os.path.join("checkpoint_20", "Train_ir","train.h5")
  data_dir_vi = os.path.join("checkpoint_20", "Train_vi","train.h5")

继续产生错误

Traceback (most recent call last):
  File "main.py", line 48, in <module>
    tf.app.run()
  File "/root/miniconda3/envs/myconda/lib/python3.5/site-packages/tensorflow/python/platform/app.py", line 125, in run
    _sys.exit(main(argv))
  File "main.py", line 45, in main
    srcnn.train(FLAGS)
  File "/mnt/FusionGAN/FusionGAN-master/model.py", line 144, in train
    for ep in xrange(config.epoch):
NameError: name 'xrange' is not defined

将144行和147行xrange改成range

 for ep in range(config.epoch):
    # Run by batch images
    batch_idxs = len(train_data_ir) // config.batch_size
    for idx in range(0, batch_idxs):
      batch_images_ir = train_data_ir[idx*config.batch_size : (idx+1)*config.batch_size]
      batch_labels_ir = train_label_ir[idx*config.batch_size : (idx+1)*config.batch_size]
      batch_images_vi = train_data_vi[idx*config.batch_size : (idx+1)*config.batch_size]
      batch_labels_vi = train_label_vi[idx*config.batch_size : (idx+1)*config.batch_size]

至此开始训练

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第38张图片

整个训练时长大约一小时,通过矩池云查看GPU占用达到90%左右

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第39张图片

最终运行结果

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第40张图片

模型保存在checkpoint/CGAN_120文件夹下,通过查看checkpoint/CGAN_120文件夹可以看到model有更新

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第41张图片

之前的文件夹下内容

矩池云服务器初尝试-通过pycharm远程连接进行FusionGAN代码复现_第42张图片
再次运行测试程序可以对前后测试结果进行对比,这里不再展示,感兴趣的朋友自己探索。

你可能感兴趣的:(服务器,pycharm,gpu算力)