python 中 namedtuple 的使用
python 中有一个非常接近数学表达的元组 namedtuple,它继承自 tuple,是具有命名字段的元组子类。本篇介绍它的使用方法。所有代码在 jupyterlab 中演示。
官方示例123456789101112131415161718192021222324252627282930313233343536from collections import namedtuplenamedtuple?Signature:namedtuple( typename, field_names, *, rename=False, defaults=None, module=None,)Docstring:Returns a new subclass of tuple with named fields.>>> Point = namedtuple('Point', ['x', 'y'])>>> Point.__doc__ ...
pytorch 设置梯度求导
pytorch 为数值函数提供了自动求导包 torch.autograd,只需要在 Tensor 定义时增加 requires_grad=True 关键字。但是,有时我们需要在局部需要设置某些计算不进行梯度计算,这可以节省内存开销。本篇所有代码在 jupyterlab 中运行。
常用的局部计算管理器如下的上下文管理器均是类。
管理器
说明
no_grad
Context-manager that disabled gradient calculation.
enable_grad
Context-manager that enables gradient calculation.
set_grad_enabled
Context-manager that sets gradient calculation to on or off.
inference_mode
Context-manager that enables or disables inference mode.
torch.no_grad该上下文管理器用于禁止梯度计算,常采用如下两种方法。
...
pycharm 常用快捷键
pycharm 是一款非常优秀的编写 python 程序的集成开发环境。本篇介绍如何在 pycharm 中使用常用快捷键来提高开发效率。本篇介绍的所有快捷键均是在 Windows 上使用,其他平台(如 Mac )的快捷键方法可参看参考文献部分。
编辑快捷键
快捷键
作用
Ctrl + Alt + L
代码格式化
Ctrl + Alt + O
优化导入
Ctrl + /
行注释/取消行注释
Ctrl + D
复制选定的区域或行
Ctrl + Y
删除选定的行
Ctrl + Numpad+/-
展开/折叠代码块(当前位置的:函数,注释等)
Ctrl + Shift + Numpad+/-
展开/折叠所有代码块
Alt + Enter
更多提示,方便导入模块
Ctrl + 鼠标左键点击
当模块导入后,可进入模块源码
Ctrl + Alt + $\leftarrow$
返回到上一步;可用于从源码返回到模块引用
Ctrl + Alt + $\rightarrow$
跳到下一步,与上面 ...
在命令行运行 python 程序的方法
Python 是一种解释性、交互式、面向对象的编程语言。在 shell 上可以通过 python 命令方便的运行 .py文件。但是,如果不能正确选择参数,将导致程序运行失败或出错。如,因为依赖引用问题。本篇介绍在命令行运行 python 的常用方法。
直接运行直接运行 python 文件,大多数情况下,这种方法可以正常运行,假设 python 文件完整路径为 /pythonprojects/run.py
12cd /pythonprojectspython run.py
当 run.py 中依赖的模块在 python 环境变量中,或者 /pythonprojects 目录下,这种方法运行没有问题。其实,在运行时,python 会把 /pythonprojects 添加到 PYTHONPATH 中第一个。
添加参数运行当开发的程序项目比较大,或者出现类似如下结构时,需要增加参数才能正常运行.
例子来源于:https://github.com/huanglianghua/siamfc-pytorch,假设克隆到 /pythonprojects 下:
12cd /pythonpr ...
OpenCV 目标跟踪实现
OpenCV (Open Source Computer Vision Library) 是一个跨平台的计算机视觉库,由 Intel 公司发起并参与卡法,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。本篇介绍如何使用 OpenCV 实现视觉单目标跟踪。使用的版本信息为:opencv-contrib-python 采用 4.5.4.60, python 采用 3.9.5.
编写代码创建 python 文件:main.py,添加如下代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Jinzhong Xu# @Contact ...
you-get 下载视频的方法
you-get 能够方便的下载很多网站上面的视频/音频/图片,如 bilibili 等,特别是能够下载整个视频集所有视频。下面介绍如何使用它下载视频。
安装 you-getyou-get 官网地址: https://you-get.org/. 推荐的下载方法是通过 pip 安装,pip 作为 python 的包管理工具,非常方便下载各种 python 包,you-get 就是其中一个。建议安装 pip 可以使用 miniconda。假设 miniconda 已经安装,且安装好了pip 包管理工具,那么如下一条命令便可以安装 you-get:
1pip install you-get
如果是 Mac 系统,也可以使用如下命令安装
1brew install you-get
使用 you-get查看视频信息12345678910111213141516171819202122232425262728293031323334353637383940414243you-get -i https://www.bilibili.com/video/BV1oW411w7G ...
使用 autossh 保持 ssh 连接
SSH 能够方便我们连接远程服务器,而且,数据的传输是通过加密的方式进行的。有时候,想要进行远程端口转发或者本地端口转发时,总是会因为网络不稳定等以及其他原因导致 SSH 连接中断,这就导致转发的不稳定。本篇介绍一个工具 autossh,它能够保持 SSH 连接的稳定性,即使断网,当网络恢复时也能够自动连接。以 Ubuntu 18.04 为例。
安装 autossh12sudo apt updatesudo apt install autossh
如果是 Mac 系统,可以使用如下命令:
1brew install autossh
autossh 命令介绍autossh 工具自带的参数不多,但 ssh 命令带的参数很多。autossh 命令可以代替 ssh,并且使用 ssh 命令的参数。ssh 的参数可以使用 man ssh 查看。
autossh 的简单语法:
1autossh [-V] [-M port[:echo_port]] [-f] [SSH_OPTIONS]
autossh 自带的参数有
V: causes autossh to display its vers ...
更新 ubuntu 系统内核版本
Ubuntu 系统的内核升级的简单方法。本篇以 Ubuntu 20.04 为例,所有命令均以 root 用户运行。
下载最新内核12345678wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.10/amd64/linux-headers-5.16.10-051610_5.16.10-051610.202202161442_all.debwget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.10/amd64/linux-headers-5.16.10-051610-generic_5.16.10-051610.202202161442_amd64.debwget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.10/amd64/linux-image-unsigned-5.16.10-051610-generic_5.16.10-051610.202202161442_amd64. ...
如何写基金申请书
国家自然科学基金委员会依据《国家自然科学基金条例》和相关管理规定,每年1月份左右都会发布当年度《国家自然科学基金项目指南》,引导申请人申请国家自然科学基金的资助。今年1月19号发布了2022年国家自然科学基金项目指南。该指南对各类项目的定位、申请条件和相关要求分别进行了介绍与说明,是国家自然科学基金资助工作的重要依据。对于从事科学研究工作的科研人员来说,国家自然科学基金就是生存之本,重要性不言而喻。如何写好一个基金申请书关系到能否拿到当前的资助,更甚至影响到一个科研人员的职业生涯。本篇介绍如何写基金申请书,个人收集整理方便查阅。
国家自然科学基金资助类别要想写好申请书,首先需要明确自己想要申请的基金类别。不同的资助类别面向不同的科研人员,要求也不尽相同。国家自然科学基金有如下资助类别:
面上项目:范围广;资助期限4年;每年2万项左右;平均60万左右;平均资助率17%左右
青年科学基金项目:男性未满35周岁,女性未满40周岁;只能获资1次;资助期限3年;每年2万项左右;30万;平均资助率17%左右
地区科学基金项目:指定地区科研人员;资助期限4年;每年3000项左右;平均35万左右 ...
利用 Python 加载网络图片
Python 能够非常方便的进行计算机视觉方向的人工智能编程。利用 Python 可以轻易的处理图片,这主要归功于图像/视频处理相关库或包,如 OpenCV, Pillow, imagio, PyTorch, TensorFlow, matplotlib等。本篇介绍,如何利用 Python 在线加载网络图片,方便后续的图片处理,模型训练等。所有代码以 Jupyter notebook 为运行环境。
假设网络上的图片 url 如下:
1url = "https://p1-tt.byteimg.com/origin/pgc-image/fe41801208fa40d394352e0df71e9202?from=pc"
方法1123456from urllib import requestfrom PIL import Imageimg = Image.open(request.urlopen(url))img
方法2123456import requestsfrom PIL import Imageresponse = requests.get(url ...
使用 transmission-cli 在 linux 命令行下载 torrent
Transmission 是一种流行的跨平台 BitTorrent 客户端,具有多种风格,包括原生 Mac 和 GTK+ 版本,以及任何使用过 uTorrent 的人都熟悉的桌面 GUI。它是许多 Linux 发行版中的默认 BitTorrent 客户端,transmission-cli 可以在大多数官方存储库中找到。本篇以 Ubuntu 为例。
安装12sudo apt updatesudo apt install transmission-cli
使用方法下载 torrent12345transmission-cli http://releases.ubuntu.com/16.10/ubuntu-16.10-desktop-amd64.iso.torrent -w ~/Downloads# 也可以先把 torrent 文件下载到本地,然后再下载wget http://releases.ubuntu.com/16.10/ubuntu-16.10-desktop-amd64.iso.torrenttransmission-cli ubuntu-16.10-desktop-amd6 ...