python
文章平均质量分 57
永不言弃的小颖子
这个作者很懒,什么都没留下…
展开
-
Pytorch并行训练方法-单机多卡
简单方便的 nn.DataParallelDataParallel 可以帮助我们(使用单进程控)将模型和数据加载到多个 GPU 中,控制数据在 GPU 之间的流动,协同不同 GPU 上的模型进行并行训练(细粒度的方法有 scatter,gather 等等)。DataParallel 使用起来非常方便,我们只需要用 DataParallel 包装模型,再设置一些参数即可。需要定义的参数包括:参与训练的 GPU 有哪些,device_ids=gpus;用于汇总梯度的 GPU 是哪个,output_dev原创 2022-04-02 10:21:58 · 4851 阅读 · 0 评论 -
Python中多进程
来自东哥IT笔记现在很多CPU都支持多核,甚至是手机都已经开始支持多核了。而Python的GIL(Global Interpreter Locko)则使得其没法使用这些多核带来的优势。还好从Python2.6开始,引入了multiprocessing模块,我们终于可以使用多核带来的便利了。使用多进程的优点使用多进程的缺点使用multiprocessing来创建多进程Process的子类化创建进程池本文并不是一个multiprocessing的全面的介绍,假如你想全面的了解它,可以参见官方的原创 2022-04-01 11:15:38 · 7413 阅读 · 0 评论 -
python的模块、包、库的联系与区别
1.Python模块使用模块的好处:大大提高了代码的可维护性;编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。一个模块就是指Python代码的一个文件,一个.py文件就称为一个模块。2.包(package)为了组织好模块,将多个模块分为一个包。包是python模块文件所在的目录,且该目录下必须存在__init__.py文件。常见的包结构如下:package_a├── **init**.py原创 2022-03-30 16:24:36 · 2882 阅读 · 0 评论 -
super().__init__()用法
用法解析:在子类的__init__方法中使用 super().__init__() , 就相当于把父类的 __init__构造方法拿过来用, 并且可以对父类的__init__方法进行补充(比如添加成员属性/方法) ;也就相当于把父类的__init__方法继承过来了, 之后用子类实例化一个对象后, 这个对象可以点出父类对象的成员属性/方法, 当然也可以点出自己类对象的成员属性/方法;原本的话子类中的__init__方法会覆盖掉父类的__init__方法, 导致无法通过实例化子类的类对象去给父类的类对象添原创 2022-03-30 16:03:59 · 2802 阅读 · 0 评论 -
根据log文件画loss曲线实例
import matplotlib.pyplot as plttr_loss = []tr_step = []with open("/home/zz/123/transformer.log") as f: for line in f: line = line.strip() line = line.split(',') if len(line)>=4: step = float(line[2][13:]) loss = float(line[4][6:]) tr原创 2021-12-16 13:59:02 · 3445 阅读 · 0 评论 -
关于python脚本第一行#! /usr/bin/env python
#!是Unix系统中放在脚本文件开头指定执行该脚本的解释程序的完整路径最好设置成#! /usr/bin/env python系统会自动找到环境中的python路径,如果设置成#! /usr/bin/python#! /bin/python一般情况下可以运行,但如果脚本是在virtualenv环境下运行,会造成未知的错如要直接执行脚本,需要给脚本添加执行权限,执行时文件前加./chmod +x file.py./file.py参考#!/usr/bin/env python与#!原创 2021-09-30 00:12:12 · 756 阅读 · 0 评论 -
Linux添加PYTHONPATH方法以及3种修改环境变量方法
方法一:用于当前终端export PATH=$PATH:<你的要加入的路径>上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效;方法二:用于当前用户在用户主目录下有一个 .bashrc 隐藏文件,可以在此文件中加入 PATH 的设置如下:(1)gedit ~/.bashrc(2)export PATH=<你的要加入的路径>:$PATH(3)加入多个路径:export PATH=<你要加入的路径1>:<你要加入的路径2>: …原创 2021-09-30 00:04:43 · 9287 阅读 · 0 评论 -
python中保存列表和字典
python保存列表(1)保存为.npy文件:先将列表转为np.array,再进行保存import numpy as npgraphTable = [ [[0,3],[1,3],1,'1'], #A-B [[1,3],[2,3],1,'2'], #B-C [[2,3],[2,1],2,'3'], #C-H [[1,3],[1,2],1,'4'], #B-D [[1,2],[1,1],原创 2021-09-28 21:56:20 · 4174 阅读 · 0 评论 -
Python常用
Python改变列表中数据类型的方法方法1:a=['123','345','147']b=[]for i in a: j = float(i) b.append(j)方法2:a=['123','345','147']b=a[:2]b=numpy.array(b,dtype='float_')#把列表的数据类型全部都变为浮点型....方法3:a=['123','345','147']b=[int(i) for i in a]....Python3中新函数(gt原创 2021-09-21 12:09:49 · 114 阅读 · 0 评论 -
Python中类的定义与调用
赶脚跟C++基本一样~~~类的定义class Student(object): def __init__(self,name,score,gender): self.__name=name self.__score=score self.__gender=gender def get_name(self): return self.__name def print_score(self): print原创 2020-10-27 16:45:32 · 2028 阅读 · 3 评论 -
AttributeError: ‘function‘ object has no attribute ‘quad‘ in Python
from scipy import integrateimport numpy as npa = integrate.quad(lambda x: x**4, 0, 8)print(a)遇到问题:AttributeError Traceback (most recent call last)<ipython-input-132-c7f6592004af> in <module>() 2 from sc原创 2020-10-27 09:50:42 · 1165 阅读 · 0 评论 -
Python 数据可视化1
二维绘图一维数据集Matplotlib 能够按照不同的 Python 格式存储的数据(如列表对象)绘制图表,在下面的所有例子中,将按照存储在 NumPy ndarray 对象中的数据绘制图表。首先,生成 20 个标准正态分布(伪)随机数,保存在一个 NumPy ndarray 中:import numpy as npnp.random.seed(1000)y = np.random.standard_normal(20)ypyplot 子库中的 plot 函数是最基础的绘图函数,但是也相当强原创 2020-08-13 21:17:15 · 417 阅读 · 1 评论 -
Python科学计算—Pandas基础学习
包导入import numpy as npimport pandas as pd基本介绍pandas序列s = pd.Series([1,3,2,np.pi,0])>s>0 1.0000001 3.0000002 2.0000003 3.1415934 0.000000dtype: float64DataFramedat...原创 2020-03-11 22:37:31 · 357 阅读 · 0 评论 -
Python—>(11)学习笔记
迭代器、生成器、装饰器迭代器生成器生成器表达式闭包装饰器迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。创建一个迭代器:把一个类作为一个迭代器使用需要在类中实现两个方法 (类都有一个构造函数,Python 的构造函数为 __in...原创 2020-03-09 11:28:20 · 138 阅读 · 0 评论 -
NumPy常用
NumPy 是 Python 语言的一个第三方库,其支持大量高维度数组与矩阵运算。此外,NumPy 也针对数组运算提供大量的数学函数。机器学习涉及到大量对数组的变换和运算,NumPy 就成了必不可少的工具之一。导入 NumPy:import numpy as np查看 NumPy 版本信息:np.__version__通过列表创建一维数组:np.array([1, 2, 3]),此数组是一...原创 2020-03-07 23:08:13 · 1097 阅读 · 0 评论 -
Python科学计算—NumPy基础(2)
数学函数 数组索引和切片数学函数使用 Python 自带的运算符,你可以完成数学中的加减乘除,以及取余、取整,幂次计算等。导入自带的 math 模块之后,里面又包含绝对值、阶乘、开平方等一些常用的数学函数。不过,这些函数仍然相对基础。如果要完成更加复杂一些的数学计算,就会显得捉襟见肘了。(1) 三角函数numpy.sin(x):三角正弦。numpy.cos(x):三角余弦。nu...原创 2020-03-07 18:02:58 · 893 阅读 · 0 评论 -
Python科学计算—NumPy基础(1)
NumPy 数组类型 NumPy 数组生成 数组维度和形状 数组基本操作 NumPy 随机数NumPy 数组类型Python 本身支持的数值类型有 int(整型)、float(浮点型)、bool(布尔型) 和 complex(复数型)。而 NumPy 支持比 Python 本身更为丰富的数值类型,细分如下:bool 布尔类型,1 个字节,值为 True 或 False。int...原创 2020-03-07 17:21:33 · 287 阅读 · 0 评论 -
Python—>(10)学习笔记
Collection模块collections 是 Python 内建的一个集合模块,提供了许多有用的集合类。>>> import collectionsCounter类defaultdict类namedtuple类原创 2020-03-05 21:45:07 · 216 阅读 · 0 评论 -
Python—>(9)学习笔记
模块模块在 Python 解释器中写的所有代码都在退出解释器的时候丢失了。但是当编写大型程序的时候人们会倾向于将代码分为多个不同的文件以便使用,调试以及拥有更好的可读性。在 Python 中我们使用模块来到达这些目的。模块是包括 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。可以由全局变量 __name__ 得到模块的模块名(一个字符串)。现在来看看模块是怎样工作的...原创 2020-03-03 18:47:27 · 213 阅读 · 0 评论 -
Python—>(8)学习笔记
类Class原创 2020-03-03 16:20:10 · 365 阅读 · 0 评论 -
Python—>(7)学习笔记
小实验:实现一个程序,将分钟转为小时和分钟。在 MinutesToHours.py 文件中实现一个函数 Hours(),将用户输入的 分钟数 转化为 小时数和分钟数,并要求小时数尽量大。将结果以 XX H, XX M 的形式打印出来。要求:用户能够通过命令行参数输入分钟数,不要使用 input,命令行参数可以使用 sys.argv 来提取。例如程序执行为 python3 MinutesTo...原创 2020-02-29 21:51:20 · 245 阅读 · 0 评论 -
Python—>(6)学习笔记
异常处理NameErrorTypeError异常处理(try…except)异常抛出(raise)finally 子句在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关的错误信息,比如在 Python3 中使用 Python2 独有的语法就会发生 SyntaxError,不小心在行首多打了一个空格就会产生 IndentationError。NameError当访问一...原创 2020-02-29 21:35:31 · 168 阅读 · 0 评论 -
Python—>(5)学习笔记
字符串字符串的表示可以通过几种不同的方式表示字符串。如单引号('...')或双引号("...")。>>> s = "I am Chinese">>> s'I am Chinese'>>> s = 'I am Chinese'>>> s = "Here is a line \... split in two ...原创 2020-02-29 21:08:42 · 342 阅读 · 0 评论 -
Python—>(4)学习笔记
数据结构列表>>> a = [23, 45, 1, -3434, 43624356, 234]>>> a.append(45)>>> a[23, 45, 1, -3434, 43624356, 234, 45]>>> a.insert(0, 1) # 在列表索引 0 位置添加元素 1>>>...原创 2020-02-29 11:35:21 · 225 阅读 · 0 评论 -
Python—>(3)学习笔记
Linux环境下安装与设置1)部分Linux发行版包含所有的Python包,可以通过apt这样的工具进行安装;2)Anaconda的安装:安装时需要使用一个文件名类似于Anaconda3-4.1.0-Linux-86_64.sh的文件,在bash命令行输入bash Anaconda3-4.1.0-Linux-86_64.sh,接受许可后选择安装路径;修改.bashrc文件export PATH...原创 2020-02-26 22:10:59 · 307 阅读 · 0 评论 -
Github使用入门学习笔记
Git: 版本控制工具,管理着地球上最庞大的代码仓库;使用之前需要先安装;Github: 代码托管平台、开源社区;上传GitHub的完整操作安装Git; 注册Github账号,新建一个代码仓库;终端中输入git,检测是否安装成功;新建需要上传的本地文件;在新建文件的目录处输入git init,完成Git初始化,将一个已存在的文件夹置于Git的控制管理之下;使用git add +文件...原创 2020-02-24 17:59:47 · 287 阅读 · 0 评论 -
Python—>(2)最基础:流程控制
Python文件的创建和执行创建命令行方式创建:eg., 用gedit打开/新建一个.py文件(终端中输入gedit tset.py);直接在编辑器中创建;执行终端输入python3 test.py流程控制条件判断ifelifelse注意行末冒号注意下一行的4个缩进循环for循环(预先知道循环次数);for item in iterable:range(...原创 2020-02-24 15:11:16 · 66 阅读 · 0 评论 -
Python—>(1)最基础
数据结构数据类型整数浮点数布尔值空值:None字符串:1)’hello world’ :用引号包裹,单双均可;2)多行用三引号;3)索引从0开始;4)注释:#; 5)format()函数的使用:print(‘My name is {},and my number is {}'.format(name,number))等价于print('My name is '+name+',and ...原创 2020-02-24 14:34:56 · 144 阅读 · 0 评论 -
python3迭代器与生成器
迭代器迭代是Python最强大的功能之一,是访问集合元素的一种方式,也是一个可以记住遍历的位置的对象,它有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器,比如:>>> list=[1,2,3,4]>>> it = iter(list) # 创建迭代器对象>>> print (next(i...原创 2019-07-18 21:46:56 · 104 阅读 · 0 评论 -
python中numpy的axis=0和axis=1的区别
转自:http://blog.csdn.net/wangying19911991/article/details/73928172 https://www.zhihu.com/question/58993137python中的axis究竟是如何定义的呢?他们究竟代表是DataFrame的行还是列?考虑以下代码:>>>df = pd.DataFrame([[1,...转载 2019-07-08 15:08:00 · 349 阅读 · 0 评论