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
勾上了即可。也可以对某个文件手动同步。