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

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日午夜(历元)经过的时间。

Note | Python的更多相关文章

  1. Python基础知识整理

    //占位,缓缓写完 http://www.xuebuyuan.com/2117676.html 迭代器与生成器http://www.cnblogs.com/wilber2013/p/4652531.h ...

  2. Python基础、 内置函数

    一.概述 Python中内置了很多函数: 可以通过help().dir()方式查看函数的功能,使用内置函数通常效率更高 abs() abs函数接收一个数字对象,返回它的绝对值,如果接受的对象不是数字抛 ...

  3. program 1 : python codes for login program(登录程序python代码)

    #improt time module for count down puase time import time #set var for loop counting counter=1 #logi ...

  4. Python内置函数(59)——open

    英文文档: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, ope ...

  5. Python代码缩进与测试模块

    一.Python代码缩进 Python 函数没有明显的  begin 和  end ,没有标明函数的开始和结束的花括号.唯一的分隔符是一个冒号 ( : ),接着代码本身是缩进的. 例如:缩进  bui ...

  6. Python内置函数(47)——open

    英文文档: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, ope ...

  7. python网络爬虫笔记(一)

    一.查询数据字典型数据 1.先说说dictionary查找和插入的速度极快,不会随着key的增加减慢速度,但是占用的内存大 2.list查找和插入的时间随着元素的增加而增加,但还是占用的空间小,内存浪 ...

  8. 写出简洁的Python代码: 使用Exceptions(转)

    add by zhj: 非常好的文章,异常在Python的核心代码中使用的非常广泛,超出一般人的想象,比如迭代器中,当我们用for遍历一个可迭代对象时, Python是如何判断遍历结束的呢?是使用的S ...

  9. 五:python 对象类型详解二:字符串(上)

    一:常量字符串 常量字符串用起来相对简单,也许最复杂的事情就是在代码中有如此多的方法来编写它们. eg:单引号:'spam"m'   , 双引号: “spa'm” , 三引号:‘’‘... ...

随机推荐

  1. python持久化对象

    通过shelve模块即可持久化对象 代码 import shelve import numpy as np def writeObj(name,obj): with shelve.open('obje ...

  2. 关于group by的用法 原理

    转载: https://blog.csdn.net/u014717572/article/details/80687042. 写在前面的话:用了好久group by,今天早上一觉醒来,突然感觉grou ...

  3. 简单的Python GUI界面框架

    Python开发GUI界面, 可以使用pyQT或者wxpython. 不过不论pyQT还是wxpython都需要比较多的学习成本.Python工程往往是用于快速开发的,有些时候引入pyQT,wxpyt ...

  4. tomcat程序生成的日志文件不可读问题 - 运维总结

    现象描述:线上机器的程序文件(包括TOMCAT自身)使用APP账号作为属主运行,同时禁止了APP账号的BASH.登录系统使用了统一认证,这样每个人都有自己的账号登录系统.为了方便开发人员登录查看日志, ...

  5. 【Oracle命令】sql语句之排序(order by)

    通过对数据库数据进行降序排序来达到显示最新数据在前面的效果 -- 降序排序(最新的显示在前面) SELECT * FROM 表名 t ORDER BY t.uploadDatetime DESC; 格 ...

  6. 100道MySQL常见面试题总结,看完直接收藏

    前言 本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水. 前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面 ...

  7. C# shell32.dll 的用法

    1 首先要使用shell32  请在项目引用中添加shell32.dll 的引用  (备注:该引用是系统dll文件 在C:\Windows\System32  目录下 可以自行拷贝到项目中) priv ...

  8. CSS3 新增选择器

    CSS3 新增选择器 结构(位置)伪类选择器(CSS3) :first-child :选取属于其父元素的首个子元素的指定选择器 :last-child :选取属于其父元素的最后一个子元素的指定选择器 ...

  9. 【转载】不可不知的 Android strings.xml 那些事

    相信 strings.xml 已经是大家在 Android 开发中最熟悉的文件之一了,但其实它也有很多需要注意的地方和一些小技巧,知道了这些可以让你的 Android 应用更加规范易用,大家来看看吧. ...

  10. Ubuntu18.04安装配置

    GPT硬盘安装Ubuntu 磁盘管理工具压缩一个5GB的Fat32的分区,然后将ISO文件解压到Fat32分区 利用Hasleo EasyUEFI工具添加EFI引导 *:\EFI\BOOT\grubx ...