Python3隨手記


Python3隨手記

list方法

  • index():只返回第一個查詢到的的索引值。
    如果要返回多個,建議用列表推導和max()方法,逐個對比即可。

os

  • 查看目錄是否存在,不存在則創建

    if not os.path.exists(dir_save_stack):
        os.makedirs(dir_save_stack) ## 如果是單層目錄,可以用mkdir
    

imageio

  • 保存灰度圖像數組為png
    假設Y通道經過處理后,得到了一個[0,1]之間類型為np.float32的數組output。我們想保存到output_path路徑,步驟為:去掉多余的B和C維度 => 脫離梯度運算,轉移至CPU,轉換為numpy數組 => 乘以255 => 轉換為uint8格式 => imageio.imwrite保存。

    imageio.imwrite(output_path, ((torch.squeeze(output).detach().cpu().numpy()) * 255).astype(np.uint8))
    

警告:我曾經嘗試過保存為png,結果圖像被有損壓縮了。如果需要進一步處理(比如算psnr),建議保存為bmp。

Python Image Libarary (PIL)

  • JPEG壓縮並保存

    from PIL import Image
    img = Image.open("lena.png")
    img.save(img_save_path, "JPEG", quality=quality) ## quality = 1 is the worst, quality = 95 is the best
    

random

  • 按種子打亂序列

    random.seed(17)
    random.shuffle(order)
    

time

  • time.time():返回以秒為單位的、從1970年1月1日午夜(歷元)經過的時間。

PyCharm+遠程服務器

預備工作

  • PyCharm專業版,可以用教育郵箱激活。

  • 遠程服務器,ssh可聯通,記錄其ip。

  • 遠程服務器上有Python,針對深度學習任務最好有Anaconda。

Pycharm配置

  • 設置代碼同步(PyCharm實際上會把代碼傳到服務器上運行):Tools -> Deployment -> Configuration -> Connection,點擊左邊的加號(添加部署服務器)。輸入ip,端口,用戶名(一般是linux的),密碼,Root path(如/home/ming)。該path會在下一步用到。

  • 建立與一個項目有關的主文件夾,里面是所有相關代碼。在該文件夾右鍵,選擇Open Project as PyCharm Project

  • Mappings內,設置本地路徑和對應的部署路徑。本地路徑就是你的項目代碼所在的路徑(所以要同步嘛),部署路徑是代碼在服務器上的保存位置。例如/ML。注意這是相對路徑,即相對於上一步的Root path。Web path不管。如果有一些目錄不想同步(例如大文件、配置文件等),可以在Excluded Paths中添加。

  • 允許自動創建文件夾:Tools -> Deployment -> Options勾上Create empty directories

  • File -> Settings -> Project: XXX -> Project Interpreter內,點擊右側小齒輪,add你的解釋器(遠程的喲)。選擇SSH Interpreter -> Existing ...,選擇部署服務器,然后Next。找到你的anaconda環境里的python解釋器,例如/home/ming/anaconda3/envs/pt1.2_py3.6/bin/python3。注意,Sync folders也是Root path的相對路徑,因此填/ML即可。

  • 最后,保證Tools -> Deployment里的Automatic Upload勾上了即可。也可以對某個文件手動同步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM