VS code 远程连接服务器步骤
①安装VS code,并连接远程服务器(本地也需要有ssh)。参考🔗
②免密钥登录设置,参考🔗 设置SSH通过秘钥登陆
1、具体步骤:WIN+R -->cmd, 输入ssh-keygen,然后一直Enter,最终生成公钥(id_rsa.pub)和私钥(id_rsa)(文件位置位于/.ssh文件夹下)。
2、接下来将公钥上传至服务器:通过Ftp工具连接服务器,查看隐藏文件,找到.ssh文件夹,将本地的公钥内容复制到.ssh文件夹中。
3、(1)在服务器上安装公钥:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
ls =>查看确保生成功authorized_keys
(2)为了确保链接成功,请保证文件权限正确:
sudo chmod 600 authorized_keys
sudo chmod 700 ~/.ssh
(3)查看或配置打开秘钥登陆功能(默认不需要修改配置):
打开SSH配置文件: sudo vim /etc/ssh/sshd_config
查看确认下面两项配置:RSAAuthentication yes PubkeyAuthentication yes
(4)完成全部设置后,并以秘钥方式登陆成功后,再禁用密码登陆: PasswordAuthentication no
(5)重启SSH
③VS code简体中文,参考🔗
环境安装步骤:
1:anaconda 的安装。 (解决:报错:conda: command not found)(vim编辑)
安装 Anaconda3 bash Anaconda3-2019.10-Linux-x86_64.sh 创建Python环境: 代表创建一个python3.5的环境,我们把它命名为python35 conda create --name py27 python=2.7 # To activate this environment, use 管理和使用python环境 , 来激活创建的环境 conda activate py27 # To deactivate an active environment, use conda deactivate
conda 移除python环境
conda remove -n python3.6 --all 查看Python环境: 可以看到所有python环境conda env list
查看Python版本:
import sys
print(sys.version)
查看已安装的包
pip list
查看pytorch的版本
python
import torch
torch.__version__
查看CUDA是否可用
import torch
torch.cuda.is_available()
查看Linux 系统架构
uname -m
查看Linux系统版本
lsb_release -a
验证torchvision
是否正确安装,并且是否能够与torch
一起使用CUDA
import torch
import torchvision
print("Torch version:", torch.__version__)
print("Torchvision version:", torchvision.__version__)
print("CUDA available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("CUDA version:", torch.version.cuda)
pytorch和CUDA版本的选择:官网链接
服务器支持的CUDA最高版本和CUDA Driver驱动有关,通过 nvidia-smi查看
而其余cudnn, torch, torchvision的版本要与安装使用的CUDA版本对齐
cuda、cudnn、torch、torchvision对应版本 官网版本
安装
conda install pytorch=1.1 torchvision cudatoolkit=10.0
conda install pytorch=1.1 torchvision cudatoolkit=11.1
------------------------------------------------------------------------------
查看linux系统中的CUDA 版本号: cat /usr/local/cuda/version.txt
查看CUDNN 版本号: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
------------------------------------------------------------------------------
Ubuntu 更改CUDA的版本, 添加CUDA到bashrc环境变量 多个CUDA版本选择
在使用下面命令的时候,会出现找不到该命令,但是cuda已经安装好了,这是因为cuda环境变量有问题,执行的命令为:
nvcc -V
需要添加的环境变量,我安装的是cuda-10,这里根据安装的cuda版本自行更改下面的配置, vim ~/.bashrc:
export PATH=/usr/local/cuda-10.0/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
nvcc -V
输出为:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
查找 CUDA 安装目录:CUDA 安装通常会在服务器上的特定目录中。您可以尝试在系统中查找 CUDA 安装目录,然后检查该目录中的版本信息文件。具体路径取决于操作系统和 CUDA 版本。以下是一些常见的 CUDA 安装路径:
-
Linux:默认情况下,CUDA 可能安装在
/usr/local/cuda
目录下。您可以在该目录中查找version.txt
文件,其中包含了 CUDA 版本信息。
------------------------------------------------------------------------------
安装Pytorch-1.1失败:
到下面的网站可以直接下载: https://anaconda.org/pytorch/pytorch/files?version=1.1.0
下载好后conda install --offline filename即可 (但会出现环境变量问题,该方法不可行),采取:
conda 环境安装过程中由于网络问题 CondaHTTPError:,下载不成功。可以尝试手动下载安装包,偷梁换柱。操作步骤:🔗
conda 环境的复制
conda env export > environment.yaml
conda env create -f environment.yaml
当conda导出的环境依赖不全时,即没有相关依赖的pip包,可以用以下命令导出和安装pip包
pip freeze > requirements.txt
pip install -r requirements.txt
------------------------------------------------------------------------------
安装 Anaconda3 环境后:conda: command not found,解决:
1)~/.bashrc文件没有配置好: vim ~/.bashrc
2)在最后一行加上: export PATH=$PATH:【你的安装目录】
Linux中vim编辑方式:i或者a进入插入编辑模式,ESC键退出,:或者/进入命令模式
(:wq保存并退出,:q退出不保存,:q!强制退出不保存)
3)运行source ~/.bashrc 保存
------------------------------------------------------------------------------
screen 全屏窗口管理器
screen -S session_name # 新建一个session
screen -ls # 列出当前所有的session
screen -r session_name # 进去name对应的session,这里也可以输入session id,同样有效
screen -d session_name # 远程detach某个session,这里也可以输入session id,
screen -d -r session_name # 结束当前session并回到session_name
screen -wipe # 清理那些dead的session
exit或者ctrl+d #退出当前screen窗口,结束当前screen窗口,不想再连接回来(即杀死会话)
- 如果是想结束掉当前screen,可以 Ctrl+d 的方式退出。
- 如果是想detach当前screen,就是让他后台运行用 Ctrl+a+d,暂时离开当前session,每个 screen 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
C-a d #进入screen窗口后,想暂时退出(等会还想连接这个screen窗口)
C-a c #screen 在该会话内生成一个新的窗口并切换到该窗口
C-a n #切换到下一个窗口;
C-a p #切换到前一个窗口
C-a k #关闭当前窗口
C-a w #列出当前窗口(不知道为什么我不显示)
C-a tab #切换屏幕
------------------------------------------------------------------------------
解压命令unzip和tar和打包命令以及xz、bz2、gz压缩格式的文件解压 --> 链接
------------------------------------------------------------------------------
报错:PackagesNotFoundError: The following packages are not available from current channels
解决方法(详细链接):
(1)当出现这种报错时,应该首先尝试使用以下命令将conda-forge channel添加到你的channel列表中:
conda config --append channels conda-forge
(2)在 https://anaconda.org 这个网址,在上方的搜索条上搜索你要安装这个包的其他channel,接着在你的命令行窗口或Anaconda Prompt窗口对应的路径下运行页面中提供的任意一条命令即可。
(3)如果上述这些命令经过一一尝试都无效,那只有下载该python包对应的本地“***.bz2”本地文件,然后利用annaconda进行本地安装。把下载好的“python-igraph-0.8.3-py38h0d6bca7_2.tar.bz2”这个安装包放到anaconda存放包的目录下,如:D/anaconda3/pkgs/~
然后执行命令:conda install --use-local python-igraph-0.8.3-py38h0d6bca7_2.tar.bz2
即可完成安装。(bz2前的包名根据你所需要的包而不同,“python-igraph-0.8.3-py38h0d6bca7_2.tar.bz2”是我所安装的igraph)
------------------------------------------------------------------------------
使用pip install时,提示Using Cached 解决方案:
pip3 --no-cache-dir install -r requirements.txt
查看 watch -n 1 nvidia-smi
------------------------------------------------------------------------------
保存到text文件中
np.savetxt(r'//sim_PNAN.txt',sims,fmt='%.5f')
np.save(r'',attn_max[queryL:].cpu())
np.save(r'',attn_max[queryL:].cpu())
np.save(r'',attn_max[:queryL].cpu())
------------------------------------------------------------------------------
查看当前的进程GPU
fuser -v /dev/nvidia*
杀死进程
kill 进程号
杀死用户的所有进程
killall -u name_of_user
杀死某张卡上的所有进程(第5张卡 nvidia4)
fuser -v /dev/nvidia4 | awk '{print $0}' | xargs kill -9
------------------------------------------------------------------------------
vscode 无法连接服务器,但是Xshell, Xftp等都可以正常连接。解决办法:
- 打开C盘下的/user/<user_name>/.ssh文件夹,找到known_hosts文件;
- 用记事本打开该文件,可以看到如下所示的界面:
- 删除所要连接服务器IP相关的信息;
- 此时再用VSCode连接服务器,就一切正常了。
------------------------------------------------------------------------------
查看nn.linear 的具体学习参数:
for parameters in net.parameters():
print(parameters)
或者:
conv1.weight : torch.Size([6, 1, 3, 3])
conv1.bias : torch.Size([6])
fc1.weight : torch.Size([10, 1350])
fc1.bias : torch.Size([10])
------------------------------------------------------------------------------
pytorch 保留小数点:链接
简单实现为:
#保留三位小数截断 python3
print(int(1.23456 * 1000) / 1000 )
------------------------------------------------------------------------------
Pytorch 指定GPU 链接
PyTorch 中的 Tensor,Variable 和 nn.Module(如 loss,layer和容器 Sequential)
等可以分别使用 CPU 和 GPU 版本,均是采用 .cuda()
方法.
import torch
a = torch.Tensor(2, 3) if torch.cuda.is_available(): # 判断是否支持 CUDA a.is_cuda # False a = a.cuda() # 放到 GPU 上 a.is_cuda # True a.get_device() # 默认使用 GPU-0
在没有显式指定GPU的前提下,采用 .cuda()
方法默认使用的是 GPU-0,等价于 .cuda(0)
.
通常的指定GPU方法有:
1)使用 torch.cuda.set_device(id)
函数,例如:torch.cuda.set_device(id) # id=0, 1, 2 等
2)采用类似 Tensorflow 指定 GPU 的方式,使用 CUDA_VISIBLE_DEVICES
2-1)使用终端命令行运行的 GPU 指定方式,例如:CUDA_VISIBLE_DEVICES=1 python python_script.py
2-2)在 python 脚本中的 GPU 指定方式,例如:os.environ["CUDA_VISIBLE_DEVICES"] = "2"
3)torch.devise设置:
import torch device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") a_cpu = torch.Tensor(2, 3) # tensor([[0.0000e+00, 0.0000e+00, 1.2771e-40], # [9.0079e+15, 1.6751e-37, 2.9775e-41]]) a_cpu.device # device(type='cpu') a_cuda = a.to(device) # tensor([[-2.1800e-01, 4.5737e-41, 2.3351e-37], # [ 0.0000e+00, 4.4842e-44, 0.0000e+00]], device='cuda:0') a_cuda.device # device(type='cuda', index=0) # 查看当前 gpu id curr_gpuid = torch.cuda.current_device() # 0
------------------------------------------------------------------------------
当显示找不到文件时,可能是系统路径中没有,添加即可:
import os
import sys
current_dir = os.path.dirname(os.path.abspath(__file__))
print(current_dir)
sys.path.append(os.path.join(current_dir, ".."))
常用的pathon 文件操作:参考🔗
(1)使用os
模块的os.path.exists
函数来判断路径是否存在,不存在时进行创建:
import os
path = '/path/to/dir'
if not os.path.exists(path):
os.makedirs(path)
(2)获取文件下的所有文件名,或输出所有文件的路径:
import os
dir_path = r'C:\Users\Smile\Desktop\'
file_ls = os.listdir(dir_path) #获取所有文件名称,为list列表
file_path = [os.path.join(dir_path, file) for file in file_ls] #获取所有文件路径
(3)获取文件下的所有文件名,包括子文件夹下的所有文件,或输出所有文件的路径:
通过os.walk方法进行。它返回3个参数——根目录、根目录下的所有文件、根目录下的子文件夹。
path = r'C:\Users\Smile\Desktop\周汇报'
for root, dirs, files in os.walk(path):
print(root)
# 输出
# C:\Users\Smile\Desktop\周汇报
# C:\Users\Smile\Desktop\周汇报\数据
# 得到根目录下所有的文件路径:
path = r'C:\Users\Smile\Desktop\周汇报'
file_ls = []
for root, dirs, files in os.walk(path):
root_file_ls = [os.path.join(root, file) for file in files]
file_ls.append(root_file_ls)
(4) 获取指定后缀的文件
路径的本质是字符串,可以使用endswith方法来判断路径是否以某个字符结尾。现在将r’C:\Users\Smile\Desktop\周汇报’直接路径下(不含子文件夹)的所有docx文件输出。
path = r'C:\Users\Smile\Desktop\周汇报'
file_ls = []
for root, dirs, files in os.walk(path):
root_file_ls = [os.path.join(root, file) for file in files]
file_ls.append(root_file_ls)
#因为上面循环了两次,第二次是子文件夹的文件,所以取出第1个元素
#使用endswith判断是否以docx结尾
file_ls = [file for file in file_ls[0] if file.endswith('.docx')]
(5)修改文件名:os.rename(old_name, new_name) old_name和new_name都是路径
(6)删除/移动文件:删除文件使用os.remove(路径名) 此时的文件夹必须是空文件夹,否则会报错;如果是非空文件夹,使用shutil.rmtree(path)即可成功删除
import shutil shutil.move(old_name, new_name)
(7)获取文件所在的文件夹:使用os.path.dirname(path)
------------------------------------------------------------------------------
Linux 文件操作:链接 详细链接
查看当前目录:pwd
从根目录进入home目录下,采用绝对路径。“/”表示跟目录: cd /home
单点符(.)表示当前目录: cd .
双点符(..)表示上层目录,返回上次目录: cd ..
删除文件
rm -f 文件名
删除文件夹
rm -rf 文件夹
复制文件
cp 原文件 目标路径/ 例如:cp /home/test.txt /home/test/
复制文件夹
cp -r 原目录 目标目录 例如:cp -r dir1 dir2 (如果dir2目录不存在,则可以直接使用); 如果dir2目录已存在,则需要使用:cp -r dir1/. dir2(如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中)
docker创建镜像image
docker image build -t py27 .
docker 查看所有镜像
docker image ls
生成容器container
docker container run -it py27 /bin/bash
查看容器
docker ps
docker container start fb1d96f591b4
进入容器
docker exec -it fb1d96f591b4 /bin/bash
docker port determined_bardeen 22
ssh root@202.85.220.177 -p 22212
vim /etc/ssh/sshd_config
json文件的读取和保存:Python中json的load、loads、dump、dumps的用法
data_being_processing_path = '' with open(data_being_processing_path, 'r') as f: for line in f: data = json.loads(line) new_data = {"instruction": "", "input": "", "output": ""} new_data["input"] = data['Input'] new_data["output"] = data['Output'] with open('../output.json', 'a') as file: json.dump(new_data, file, ensure_ascii=False) # ensure_ascii=False为中文输出 file.write('\n') file.close()
将MathType嵌入到office word中:链接 Latex公式转为word,在线工具
# 以下步骤 1:找到office安装路径,一般为:C:\Program Files\Microsoft Office\root\Office16 以及一下路径:C:\Program Files\Microsoft Office\root\Office16\STARTUP\ 2:找到MathType安装路径,将mathtype中的 C:\Program Files (x86)\MathType\MathPage\64的”MathPage.wll“; C:\Program Files (x86)\MathType\Office Support\64的”WordCmds.dot“ 和 ”MathType Commands 6 For Word 2013.dotm“ 这三个文件。复制到Office 安装路径中的: C:\Program Files\Microsoft Office\root\Office16\STARTUP 中。 3. 关闭所有office软件,重新打开,或者重启电脑
scp 服务器之间的文件传输:链接
scp file username@ip:filepath
说明:
file: 要拷贝的文件名
username: 远程登录的用户名,
ip:远程服务器ip
filepath:远程文件路径
拷贝文件夹命令如下(多加上一个-r 参数即可):
scp -r file username@ip:filepath
一些例子:
把当前一个文件copy到远程服务器上:scp /home/a.txt root@192.168.0.8:/home/root
复制文件夹:scp -r root@192.168.0.8:/home/ /root/home2
在Linux中,Git是一个非常流行的分布式版本控制系统,用于跟踪和管理项目的代码变化。下面是一些常用的Git命令及其含义和用法: git init: 在当前目录中初始化一个新的Git仓库。 用法:git init git clone: 克隆(复制)一个远程Git仓库到本地。 用法:git clone <远程仓库URL> git add: 将文件添加到Git的暂存区(stage)。 用法:git add <文件名> 或 git add .(添加当前目录下的所有文件) git commit: 将暂存区的文件提交到本地仓库。 用法:git commit -m "提交信息" git push: 将本地仓库的提交推送到远程仓库。 用法:git push <远程仓库名> <分支名> git pull: 从远程仓库拉取最新的代码到本地仓库。 用法:git pull <远程仓库名> <分支名> git branch: 显示、创建或删除分支。 用法:git branch(显示所有分支), git branch <分支名>(创建新分支), git branch -d <分支名>(删除分支) git checkout: 切换分支或恢复文件。 用法:git checkout <分支名>(切换分支), git checkout -- <文件名>(恢复文件到最近一次提交的状态) git merge: 将一个分支的更改合并到当前分支。 用法:首先切换到目标分支,然后运行 git merge <源分支名> git status: 显示当前仓库的状态,包括已修改和未暂存的文件等信息。 用法:git status 这些是Git的一些基本命令,涵盖了常见的版本控制操作。使用这些命令,您可以管理代码的版本、分支、合并更改以及与远程仓库进行交互。
创建环境时,报错:CondaHTTPError: HTTP 000 CONNECTION FAILED for url https://conda.anaconda.org/conda-forge/linux-64/ 解决方法🔗
步骤1:vim ~/.condarc 步骤2:将源文件清空,下列内容黏贴进去: channels: - defaults show_channel_urls: true default_channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud 步骤3:保存退出
报错:CondaValueError: Malformed version string '~': invalid character(s)
This looks like it was fixed with Conda 4.6.0. Upgrading your Conda should resolve the issue.
conda upgrade -n base conda
要下载"https://huggingface.co/Vision-CAIR/vicuna/tree/main"下的所有文件,你可以使用`git clone`命令来克隆整个存储库。下面是下载所有文件的命令示例:
git clone https://huggingface.co/Vision-CAIR/vicuna.git
在Hugging Face上,LFS(Large File Storage)文件是指存储库中的大型文件,通常是模型权重文件或其他大型数据文件。LFS是一个Git扩展,用于管理大型文件,它将大型文件存储在远程服务器上,而不是将其直接存储在Git存储库中。这样可以避免Git存储库变得过大和冗余,并提高代码版本控制的效率。
要从Hugging Face上下载使用Git LFS(Large File Storage)的模型文件,你可以按照以下步骤进行操作: 首先,确保你已经安装了Git LFS并将其初始化。你可以在终端(命令行)中运行以下命令来安装和初始化Git LFS: (1)安装Git LFS git lfs install 进入你想要下载模型文件的目录。在终端中使用cd命令切换到该目录: cd /path/to/your/directory (2)使用git lfs track命令指定要使用Git LFS来跟踪的文件类型。例如,如果你要下载Hugging Face上的.pt(PyTorch模型文件)和.txt(文本文件),可以运行以下命令: git lfs track "*.pt" git lfs track "*.txt" (3)然后,使用git lfs pull命令从远程存储库下载Git LFS文件。例如,如果你要从名为origin的远程存储库下载文件,可以运行以下命令: git lfs pull origin 这样,Git LFS将会下载并替换存储库中的Git LFS文件,使其可供使用。请注意,上述步骤假定你已经在本地克隆了包含Git LFS文件的存储库,并且正确配置了远程存储库。确保你已经通过git clone命令克隆了存储库,并在本地设置了远程存储库的相关信息。
Linux下非root用户在服务器上安装CUDA和cudnn到指定目录:
https://blog.csdn.net/weixin_45944960/article/details/130000445
https://www.cnblogs.com/li-minghao/p/13089405.html
https://blog.csdn.net/FengHanI/article/details/135116114