Linux執行python相關指令

芝麻7771發表於2024-07-14

恢復預設映象源

conda config –remove-key channels

伺服器後臺執行程式

# 將日誌儲存到test.log檔案裡面
nohup python -u test.py > test.log 2>&1 &

# 執行帶配置檔案的程式碼
nohup python -u run_train.py --yaml config/train_nisqa_cnn_sa_ap.yaml > test.log 2>&1 &

# 實時檢視日誌檔案後100行
tail -fn 100 train.log

建立、刪除虛擬環境

# 建立(name:建立的環境名)
conda create -n name python=3.7(python版本自己指定)
# 刪除
conda remove -n name --all

檢視當前conda環境下的包

conda list

檢視已有的虛擬環境

conda env list

切換到想要的虛擬環境

conda activate my_env

打包虛擬環境的包

pip freeze > requirements.txt

檢視GPU memory情況

# 方法1
nvidia-smi

# 方法2 
gpustat -i

GPU相關

# 指定程式碼可見GPU
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "2, 4"

# 更改使用的GPU 
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"

# 指定顯示卡執行 
CUDA_VISIBLE_DEVICES=0,1 python train.py

使用0卡
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu' )

import os 
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
 
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu' )

    # 指定GPU
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    model = Ser_Model() 
    if torch.cuda.device_count() > 1:  # 檢查電腦是否有多塊GPU
        print(f"Let's use {torch.cuda.device_count()} GPUs!")
        model = nn.DataParallel(model, device_ids=[0, 1, 2,3])  # 將模型物件轉變為多GPU並行運算的模型
    model.to(device)
 
# 接下來的程式碼可能是
# net.to(device)
# 為了把模型和資料都轉移到這個device中,由於限定了可見cuda為1,故能指定只使用1號卡進行訓練

非root使用者賦予許可權(絕對路徑)

chmod -R 777 local/aishell_data_prep.sh

pip安裝

# torchl
https://download.pytorch.org/whl/torch_stable.html

pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ torchAUDIO==0.5.0

pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

https://pypi.tuna.tsinghua.edu.cn/simple


# 建立新環境時,安裝requirements.txt檔案內的包
pip install -r requirements.txt  

# 清華源
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 更新包
pip install --upgrade 包名稱

pip換原始檔 .pip/pip.conf 資料夾.pip內 pip.conf檔案

[global]
index-url = https://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =https://pypi.douban.com/simple/
trusted-host =pypi.douban.com

下載包的網站

scp 伺服器間傳檔案

scp -r /home/jxx/anaconda3/envs/py3.8torch1.7.1/nltk_data wxc@10.100.100.100(伺服器地址):/home/wxc/anaconda3/envs/torch1.7.1/

軟連線

Ln -s 已經存在的 新創的(快捷方式)
ln -s /home/jxx/code/asr_blockformer-main/wenet /home/jxx/code/asr_blockformer-main/examples/aishell/s1/wenet

Pytorch中檢視CNN網路結構和各層輸出引數

http://www.ichenhua.cn/read/238

https://zhuanlan.zhihu.com/p/52013707/

class PrintLayer(nn.Module):
   def __init__(self):
         super(PrintLayer, self).__init__()

   def forward(self,x):
         print(x.shape)
         return x

伺服器建立賬號密碼

建立賬號:sudo useradd -d "/home/cybing" -m -s "/bin/bash" cybing
設定密碼:echo -e "cyb\nc" | sudo passwd cybing

模型儲存與載入

torch.save:儲存序列化的物件到磁碟,使用了Python的pickle進行序列化,模型、張量、所有物件的字典
torch.load:使用了pickle的unpacking將pickled的物件反序列化到記憶體中
torch.nn.Module.load_state_dict:使用反序列化的state_dict載入模型的引數字典

儲存
torch.save(model.state_dict(), PATH)
載入
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.eval()

https://blog.csdn.net/qq_39852676/article/details/100120803

# hugging face 資料集/模型下載

1.切換到需要使用的虛擬環境中
2.pip install -U huggingface_hub
3.export HF_ENDPOINT=https://hf-mirror.com (Linux)
  set HF_ENDPOINT=https://hf-mirror.com (Win)
4.huggingface-cli download --resume-download --repo-type dataset --local-dir-use-symlinks False XXX --local-dir YYY

[--repo-type {model,dataset,space}]
# 例子
huggingface-cli download --resume-download --repo-type dataset --local-dir-use-symlinks False ai-habitat/hab3_bench_assets --local-dir D:\workplace\hab3_bench_assets

相關文章