Xshell使用及训练深度学习模型;PyCharm连接服务器

建议写文件路径的时候写成 相对路径
这样传到服务器端也能直接运行

1.Linux命令

conda相关

conda info -e 查看所有环境
conda info --e
conda info --envs
conda env list

conda activate pytorch 激活对应环境

文件处理相关

显示 permission denied 就在命令前面加上 sudo

cd MyFolderName 进入到需要运行的文件夹下
cd SD/ChangeDetection/FolderName 进入子文件夹
cd .. 上层目录
cd 切换到主目录

pwd 查看当前路径

ls 查看文件夹列表 (list的缩写) 用法:ls [参数] [文件]
ls -l 查看文件详细信息。缩写 ll
ls -lht列出当前目录下所有文件的大小

mkdir FolderName 新建文件夹
mkdir -p this/that/theother 建立嵌套子目录
rm -r FolderName 删除文件夹
sudo rm -r FolderName

mv aflie bfile 将 afile 重命名为 bfile
mv afile FolderName 把当前目录下的afile移动到 当前目录 FolderName 文件夹
mv afile ../ 移动到上层目录

zip -r mydata.zip myfolder -r 压缩文件夹;-q 安静模式。
unzip mydata.zip -d myfloder 解压缩到指定文件夹(文件名可以不加后缀,若目标文件夹不存在会自动新建)
unrar x mydata.rar  会在当前解压目录内产生一个以压缩包名字命名的目录,目录内是解压内容,推荐使用

其他解压缩命令:tar(待补充)

python之后别忘了输入exit()退出python,才可重新进入命令行模式

查看linux系统版本

cat /etc/redhat-release 主要针对redhat系列,redhat,centos都可以通过此命令查看

vim文本编辑器(待办)

先要装一个vim
vim **.py insert 插入模式修改
esc之后保存 :wq

其他

tab 键 自动扩充代码
clear 清屏
nvidia-smi 查看GPU占用情况

清内存? 一般是kill掉这里显示但 nvidia-smi没有显示的
fuser -v /dev/nvidia*
kill -9 PID
pkill -9 python # 根据进程名(python)杀死进程

ps aux|grep python

gcc安装(CentOS7)

注意:GCC是Linux的核心模块,升级可能会导致一些问题,请谨慎升级,升级之前做好备份工作。

参考 CentOS7 编译安装GCC 8.2.0

查看gcc版本:
查看是否有多个gcc: ls /usr/bin/gcc*

1、安装所需工具:

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y texinfo bison flex gcc-gnat glibc-devel.i686 libgcc.i686
# 安装 i686 的包是为了安装32位的头文件和库,如果不安装i686的包,请在 configure 时加入--disable-multilib,取消对32位的支持。

2、下载GCC 8.2.0

lftp -c "pget -n20 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz"

3、解压源码包
tar -zxf gcc-8.2.0.tar.gz

4、下载GCC需要的依赖:gmp、mpfr、mpc、isl

cd gcc-8.2.0
./contrib/download_prerequisites

5、执行 configure 生成Makefile:

mkdir build && cd build

# 失败
../configure --prefix=/storage/app/gnu/gcc-8.2.0 \
             --enable-bootstrap \
             --enable-shared \
             --enable-threads=posix \
             --enable-checking=release \
             --with-system-zlib \
             --enable-__cxa_atexit \
             --disable-libunwind-exceptions \
             --enable-gnu-unique-object \
             --enable-linker-build-id \
             --with-linker-hash-style=gnu \
             --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto \
             --enable-plugin \
             --enable-initfini-array \
             --disable-libgcj \
             --enable-gnu-indirect-function \
             --with-tune=generic \
             --with-arch_32=x86-64 \
             --build=x86_64-redhat-linux
             
# 成功 但是make报错
 ../configure  --prefix=/usr --enable-multilib --enable-languages=c,c++ -disable-multilib
 
# 成功 
../configure   --prefix=/usr/local/gcc-8.2.0 --disable-multilib --enable--long-long --enable-threads=posix

../configure --prefix=/usr/local/gcc-8.2.0  --disable-multilib --enable-bootstrap --enable-checking=release --enable-languages=c,c++

../configure --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --enable-multilib --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux

6、执行编译
make or make -j8
说明:-j 参数根据CPU核数设置。 编译时间根据机器配置决定,GCC编译过程一般都需要很长时间,慢慢等待。

7、安装
make install

8、配置环境变量

vim ~/.bash_profile
 
### gnu gcc
export GCC_HOME=/storage/app/gnu/gcc-8.2.0
export PATH=$GCC_HOME/bin:$PATH
 
export MANPATH=$GCC_HOME/share/man
export CPATH=$GCC_HOME/include
export LD_LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64
export LIBRARY_PATH=$GCC_HOME/lib:$GCC_HOME/lib64

报错 internal compiler error: Segmentation fault (未解决问题)

可能是因为编译时开启较多线程,
解决方案:
先清空编译结果 make clean
用少量线程数重新编译: make -j2
https://blog.csdn.net/qq_15138049/article/details/120891174

在这里插入图片描述

报错 centos7中在使用yum遇到“undefined symbol: CRYPTO_num_locks”

centos7中在使用yum遇到“undefined symbol: CRYPTO_num_locks”

gcc 8.3.1安装:

sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++
scl enable devtoolset-8 bash

2.上传文件(本地文件传输到服务器)

xftp
建议传压缩包,再用命令 解压缩 。但是也很慢。

3. 运行.py

1. Xshell中运行

cd MyFolderName 进入到需要运行的文件夹下
ls 查看文件夹列表
python train.py 运行.py文件

还可以设置GPU,比.py文件中设置的优先级更高
CUDA_VISIBLE_DEVICES=1 python train.py

# 待测试
# 先cd到文件夹 再运行
cd ChangeDetection/FolderName 
python train.py

# 直接运行
python ChangeDetection/FolderName/train.py

CUDA_VISIBLE_DEVICES=0 python my_file.py  # 指定GPU
CUDA_VISIBLE_DEVICES="0,1" python my_file.py  # 多GPU一起使用

2. ★ PyCharm 连接至 服务器 运行

参考 https://www.bilibili.com/video/BV1V44y127uD?vd_source=db1d96e72eebc08243333b73367f662a

PyCharm要用专业版?
记得 从项目中打开文件夹
在这里插入图片描述

建议提前用Xshell 复制粘贴 本地文件夹 至 服务器 可以只复制部分文件。
也可以只在Xshell新建文件夹,然后再在 PyCharm中直接将 project 复制至 服务器

(1)设置服务器

File-Settings → Project - Python Interpreter - Add -SSH Interpreter →
输入 Host ; Port ; Username。 以及 密码 or 密钥。
连接成功后然,在Add Python Interpreter 界面 ,选择服务器对应环境下的python.exe
(一般位于 /home/username/anaconda/envs/环境名/bin/python )

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建议去掉勾选 自动上传至服务器。后面再去 远程主机 手动设置同步文件夹。

(2)本地-服务器 文件夹连接

Tools - Deployment - Browse Remote Host
→… (Shift+Enter弹出界面

一定要 重命名 服务器的名字
一定要 重命名 服务器的名字
一定要 重命名 服务器的名字
否则多项目的时候无法 自动更新 本地代码修改 至 服务器。

  1. Connection(文件夹连接) -Root path (设置 服务器文件夹目录)
  2. Mappings(文件夹映射): Connection后,点击 Mappings 选项,将 本地文件 映射至 服务器。
    建议提前用Xshell 复制粘贴 本地文件夹 至 服务器

至此,成功将本地文件连接至服务器,一般来说,可以实时同步。
若服务器端没有刷新,需要 Upload to (可以对文件夹 或者 单个.py 右击,Deployment-Upload to……)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


补充说明

1. 有时候PyCharm 没有自动更新代码至 服务器

一般来说,针对每一个项目,都自动设置好了默认 自动更新代码。
前提是之前修改了 服务器的名字
即使后续 重命名了 本地文件夹名称,也不会影响服务器的连接。

(1)右击服务器名,设置默认即可。
在这里插入图片描述

(2)Tools-Deployment- 勾选 Automatic Upload

在这里插入图片描述

(3) 终极大法: 删除所有的 服务器 Python Interpreter;以及 Remote Host 。
全部重新设置。
在 重命名 服务器名称后, 目前没有出现这样的问题了

2. 新项目使用之前的服务器设置

打开新项目,设置 服务器的 Python Interpreter, Browse Remote Host 选择 对应的 服务器名,然后 设置 Connection和-Mappings 即可。
可能会出现 1 的 问题。

这里改了 Connection和-Mappings;因此 之前链接这个服务器 相同环境的 Interpreter 的项目就会失效。

如果在远程主机新建一个部署,还是会报找不到文件夹(No such file or directory)的错误。
在这里插入图片描述

猜测:
1.服务器的 Python Interpreter 与 1中的服务器名。要一一对应。(不可以在一个 Python Interpreter 下 新增服务器名。)
2.多个项目 使用相同的服务器环境,更改 Connection和-Mappings即可,先前项目链接失效。再次使用需重新设置。 (暂未找到针对项目设置服务器环境的方法。对项目新建一个服务器名,会报找不到文件的错误)

3. pycharm 远程连接服务器 显示图片(待完成)

pycharm远程连接服务器可以运行代码,但是用 opencv或者Image等不能显示图片

cv2.imshow() 报错:
在这里插入图片描述

  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值