- 博客(44)
- 收藏
- 关注
原创 对运行在GPU上的进程设置超时kill,python实现
需求:对运行在服务器GPU上的进程进行时间限制,以节约服务器GPU资源,默认对GPU上运行时长达7天的执行kill -9命令import os, datetime,timeos.system('pip install psutil pynvml')import psutilimport pynvmlinter = 7*24*3600 # 设置超时时间,默认7 days# inter = 1*3600 def all_pid_list():
2021-09-11 10:58:04 458
原创 导包的例子 python
|-- {root} | -- core | -- util | -- __init__.py | -- clss.py | -- __init__.py | -- ... | -- tool | -- tes.py# root/core/util/__init__.pyfrom .clss import Dog as Dg# root/cor.
2021-09-02 22:14:16 371
原创 深度学习—— 模型参数的访问、初始化和共享(pytorch)
模型参数的访问通过Module类的parameters()或者named_parameters()方法来访问所有参数(以迭代器的形式返回),后者除了返回参数Tensor外还会返回其名字。 对于使用Sequential类构造的神经网络,我们可以通过方括号[]来访问网络的任一层。 param的类型为torch.nn.parameter.Parameter,其实这是Tensor的子类,和Tensor不同的是如果一个Tensor是Parameter,那么它会自动被添加到模型的参数列表里初始化模型参数P
2021-07-01 21:29:27 978 1
原创 深度学习——softmax回归,pytorch实现
softmax回归模型softmax回归跟线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。
2021-06-19 20:54:45 748
原创 深度学习——线性回归及pytorch代码实现
线性回归输出是一个连续值,因此适用于回归问题。分类问题中模型的最终输出是一个离散值。softmax回归则适用于分类问题。线性回归和softmax回归都是单层神经网络。线性回归的基本要素模型定义,其中其中 $和 是权重(weight),是偏差(bias),且均为标量,都是模型的参数。模型输出 是线性回归对真实价格的预测或估计。我们通常允许它们之间有一定误差。模型训练:需要通过数据来寻找特定的模型参数值,使模型在数据上的误差尽可能小。这个过程叫作模型训练(model training)训练数据:
2021-06-18 16:46:07 323
原创 pytorch的Tensor构造和自动微分
1、Tensor的构造Tensors 类似于 NumPy 的 ndarrays ,同时 Tensors 可以使用 GPU 进行计算。from __future__ import print_functionimport torchx = torch.empty((5,3))x# 输出tensor([[9.6429e-39, 9.2755e-39, 9.1837e-39],# 输出 [9.3674e-39, 1.0745e-38, 1.0653e-38],# 输出
2021-04-11 16:13:17 248
原创 数字图像基础——基本概念
1 视觉感知人眼的构造:外覆的角膜和巩膜;脉络膜(含有血管网,是眼睛的主要营养来源);视网膜(表面离散的光感受器提供模式视觉,可分为锥状体和杆状体)。锥状体:位于视网膜中间,对颜色灵敏度高,分辨图像细节;(photopic or bright-light vision,明视觉或亮视觉)。杆状体:分布在视网膜表面,无彩色感觉,在低照明度下对图像较敏感,用来给出视野内一般的总体图像。(scotopic or dim-light vision,暗视觉或微光视觉)人眼图像的形成:正确的聚焦通过改变晶
2021-03-25 20:39:29 996
原创 python函数的高级话题
递归函数、函数属性和注释、lambda表达式,如map和filter这样的函数式编程工具都是本文叙述的内容。谈到设计函数,必须要提到函数的耦合性和聚合性。关于如何避免耦合性,需要记住以下几点:1)对于输入使用参数,并且输出使用return语句,2)只有在真正必要的情况下使用全局变量,3)不要改变可变类型的参数,除非调用者希望这样做,4)避免直接改变在另一个模块文件中的变量。所谓聚合,要求每一个函数应该有一个单一的、统一的目标。python代码以简单明了著称,一个过长或者有着深层嵌套的函数往往就成为设计缺
2021-02-18 22:05:31 190
原创 anaconda3安装注意事项以及pytorch环境配置
有些做法是将anaconda2和anaconda3都安装了,但我觉得没必要,因为anaconda中可以创建新的环境(python2.7和python3.7)并激活就可使用,所有选其一安装即可。1 anaconda环境配置去https://www.anaconda.com/download下载anaconda3,安装时不选择添加path路径,安装完成后,将盘符到Scripts的路径的添加到path环境变量中,可以使用canda命令,并验证anaconda安装环境命令:conda --version
2020-11-12 21:11:38 1348 1
原创 python语句和语法(三)——编写循环技巧和文档
循环编写技巧for循环包括多数计数器式的循环。一般而言,for比while容易写,执行时也比较快。如果你需要在列表中每个一个元素访问或者在过程中修改列表?如果在同一个for循环内,并行遍历一个以上的序列?你可以使用while循环以及手动索引运算编写这类独特的循环,但是python提供了两个内置函数,在for循环内定制迭代:(1)内置range函数返回一系列连续增加的整数吗,可作为for中的索引(2)内置zip函数返回并行元素的元组的列表,可用作for中内遍历数个序列1) 循环计数
2020-10-31 18:36:41 353
原创 python语句和语法(二)——if测试语句、while和for循环
if测试及其语法规则if语句是一个复合语句,可以包含其他语句,包含其他if在内。实际上,python可以按照顺序组合语句使其逐一执行,而且可以任意地扩展嵌套。if语句地一般形式:if <test1>: <statements1>elif <test2>: <statements>else: <statements>python会执行第一次测试为真的语句下面的嵌套语句,或者如果所有测试都为假时,就执行el
2020-10-30 13:04:48 809
原创 python的内置对象类型——元组、文件
元组元组是序列,但它具有不可变性,和字符串类似,它支持任意类型,任意嵌套以及常见的序列操作。为什么要用元组?元组在实际中往往并不像列表那样常用,但是它的关键是不可变性。如果在程序中以列表的形式传递一个对象的集合,他可能在任何地方改变;如果使用元组的话,则不能。元组能提供一个完整性约束,对于编写大型程序来说是方便的。1)长度,合并+,索引,分片>>> T = (1,2,3,4)>>> len(T)4>>> T + (7,8.
2020-10-30 13:04:21 312
原创 python语句和语法(一)
>>> while True:... reply = input('Enter text:')... if reply == 'stop':break... print(reply.upper())...Enter text:6666Enter text:spamSPAMEnter text:stop在IDLE中写入,并保存为文件。while True: reply = input('Enter text:') if r.
2020-10-30 13:03:31 2118
原创 python的内置对象类型(3)——列表类型和字典类型
python的列表对象是最通用的序列,是一个任意类型的对象的位置相关的有序集合。它大小可变的,通过偏移量进行赋值以及其他各种列表方法进行调用,可以修改列表的大小。1)序列操作列表是序列的一种,所以支持字符串用过的序列操作。唯一的区别是其结果往往是列表。>>> L = list([123,'spam',1.23])>>> len(L)3>>> L[:-1][123, 'spam']>>> L + [1,2,3][
2020-09-27 15:55:55 358
原创 python的内置对象类型(2)——字符串
2、字符串字符串是用来记录文本信息的,它们在python中作为序列。序列中的元素包含了一个从左向右的顺序——序列中的元素根据它们的相对位置进行存储和读取。其他类型的序列还包括列表和元组。1)序列操作作为序列,字符串支持对其中各个元素包含位置顺序的操作。我们通过内置的len函数验证其长度并通过索引操作得到其各个元素。注意:由于,python变量不需要提前声明,...
2020-09-20 16:09:38 411
原创 python是如何运行程序的?
1 介绍python是一个面向对象的脚本语言,将面向对象的支持和全面的面向脚本语言的角色融合在一起。python2.X和python3.X不兼容,但很多第三方库已经逐步向python3.X过渡。python有如下优点:面向对象,免费,可移植,功能强大(丰富的工具集使python介于传统的脚本语言和系统语言之间,工具集包括动态类型),...
2020-08-03 09:53:23 25360 1
原创 4.5 对类成员使用动态内存分配
如果类中成员表示姓名,一般使用更大空间的字符数组,当这种对象很多时,就会浪费内存空间,增加了计算机的内存负载。c++解决方法是:在类构造函数中使用的new运算符可以在程序运行时分配内存。通常使用的方法是使用string类,它将为您处理内存管理细节。如果想理解类的动态内存分配,就需要通过设计string类来了解内存管理细节。1 静态类成员特点:程序只创建一个静态类变量副本,也就是说所以对象共享一个静态成员。注意:不能在类声明中初始化静态成员变量,这是因为声明描述了如何分配内存,但不分配内存。对于静
2020-06-15 12:08:34 670
原创 4.3 对象与类(二)——友元函数
C++控制对类对象私有成员的访问,通常公有成员方法提供唯一的访问途径。但友元可以突破这一访问限制,其中友元函数虽非成员函数,让其称为类的友元,它的访问权限与公有成员函数相同。...
2020-05-27 23:30:36 235
原创 常用的STL总结(二)
algorithm头文件的常用函数max(x,y) ,min(x,y):返回x和y中的最大值和最小值,x和y可以是浮点型。abs(x)返回x的绝对值,x必须是整数 swap(x,y)交换x和y的值 reverse()...
2020-04-16 21:50:53 112
原创 4.1 对象与类的基本内容
OOP特性:抽象、封装和数据隐藏、多态、继承和代码的可重用性。抽象是通往用户定义类型的捷径,在C++中,用户定义类型指的是实现抽象接口的类设计。类将数据表示和操纵数据的方法组合成一个整洁的包。接口是一个共享框架,供两个系统交互时使用。这里系统就是对象,对于类来说,是公共接口。公共(public)指使用类的程序,而接口就是由编写类的人提供的方法。类规范一般由两个部分组成,1)类声明:以数据成员的...
2020-04-11 21:33:42 187
原创 3.4 C++的函数默认参数与函数重载
1 默认参数默认参数是指当函数调用中省略了实参,而自动使用的值。必须通过函数原型来设置默认值,如1)处。默认参数值就是初始化值,所以原型将n初始化为1,如果传递省略参数n,则它的值为1;否则传递的值将覆盖1。注意:1)char * left(const char* str, int n = 1); // 1)int main(){ left(sample); ...
2020-04-08 21:54:49 342
原创 常用的STL总结(一)
1 vectorvector翻译为向量,实际上更像变长数组。以下是vector的成员函数vector<int> vi,old_v; // 定义一个vector对象vi.begin(); // 取vi首元素地址vi.end(); // 取vi尾元素地址的下一个地址vi.size(); ...
2020-04-08 17:23:18 525
转载 回文数(整数)与整数反转
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。方法:反转一半数字思路映入脑海的第一个想法是将数字转换为字符串,并检查字符串是否为回文。但是,这需要额外的非常量空间来创建问题描述中所不允许的字符串。第二个想法是将数字本身反转,然后将反转后的数字与原始数字进行比较,如果它们是相同的,那么这个数字就是回文。但是,如果反转后的数字大于 int.M...
2020-04-04 20:19:14 678
转载 约瑟夫环问题
0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。class Solution {public: int lastRemaining(int n, int m) {...
2020-04-04 19:54:18 196
原创 3.3 c++函数参数传递方式——按引用传递
引用变量是c++的复合类型,引用是已定义变量的别名。引用变量的主要用途是用作函数的形参。通过将它作为参数,函数将使用原始数据,而不是副本,这样除指针外,引用也为函数处理大型结构提供一个方便的途径,同样对于设计类来说,引用也是必不可少的。1...
2020-03-28 22:49:32 2287
原创 3.2 c++的内联函数
内联函数是c++为提高程序运行速度所作出的一项改进。常规函数调用会使程序跳到另一个地址,并在函数结束时返回。这种跳跃和还要记录跳跃位置需要一定的开销。内联函数会使编译器将其替换函数调用,程序无需跳到另一个位置执行代码和再跳回来,因此内联函数的运行速度比常规函数稍快,但代价需要占用更多内存,且调用多少次内联函数,就产生多少个副本。如果函数代码执行短,且经常被调用,则可以考虑使用内联函数。内联函数...
2020-03-22 10:17:43 108
原创 常用的math函数
c语言提供很多使用的数学函数,如果使用,需要在程序开头加上math.h头文件double fabs(double x):对double类型变量取绝对值。 double floor(double x)和ceil(double x):分别对double型变量向下取整和向上取整 double pow(double r,double p):返回r^p double sqrt(double x):...
2020-03-13 12:17:29 282
原创 2.2 循坏结构及其应用文本输入
1 for循环c++允许在for循环初始化部分中声明和初始化变量,c不允许,这种变量离开循环后就会消失。string word;cin>>word;for(int i = word.size()-1;i>=0;i--) cout<<word[i];...
2020-03-08 22:45:09 117
原创 1.3 c++数据的复合类型及其使用(二)
1 指针指针是一个变量,其存储的是值的地址。为找到常规变量的地址,需对变量应用地址运算,就可获得他的位置。使用常规变量时,值是指定的量,而地址为派生量。指针的策略与之相反,将地址视为指定的量,而将值视为派生量。因此,指针名表示地址,*运算符称为间接值或解除引用运算符,将其应用指针,可以得到地址处存储的值。声明指针:int *ptr; 初始化指针: int a=5;ptr= &a;。...
2020-03-02 20:20:47 358
原创 1.3 c++数据的复合类型及其使用(一)
1 数组格式:typeName arrayName[arraySize]; arraySize表示元素数目,必须是整型常数或const值,也可以是常量表达式。arraySize在编译时已知,不能是变量。如int a[10];,c++强调a数组是使用int类型创建的。当数组下标超过9时,编译器编译时不会报错,但会破坏数据。如果是没有初始化的组数,其元素值是不确定的,由驻留在内存单元中的值决定...
2020-02-10 22:23:15 293
原创 1.2 数据的基本类型及数据处理(二)
1 书写浮点数的两种方式:1)标准小数点表示法,如8.0。2)E表示法,如2.13e+8,-18.31e2,9.1E-21。2 浮点类型三种:float、double、long double。在float.h文件中有FLT_DIG(float有效位的最小值)、FLT_MANT_DIG(含小数点的尾数的比特位数)、FLT_MAX_10_EXP(指数的最大值、FLT_MIN_10_EXP(指数的最...
2020-02-05 19:59:05 309
原创 1.2 数据的基本类型及数据处理(一)
面向对象编程(OOP)的本质是设计并扩展自己的数据类型,为了让类型与数据匹配。简单的数据类型包括整型和浮点型。1 变量命名规则:1)在名称中只能使用字母字符、数字和下划线;2)名称的第一个字母不能是数字;3)区分大小写;4)不能将C++关键字用作名称;5)以两个下划线或下划线和大写字母打头的名称被保留给编译器及其使用的资源使用;以一个下划线开头的名称被保留给实现,用作全局标记符;6)c++...
2020-02-02 22:14:29 545
原创 c语言之文件编程
在c程序中,文件一般分为程序文件和数据文件。程序文件包括源程序文件(.c)、目标文件(.obj)、可执行文件(.exe)等。数据文件一般作为程序的输入输出,所以任何设备都可看作数据文件,如终端键盘是输入文件,显示屏看作输出文件。c程序会统一把输入输出的各种文件和设备看作逻辑数据流,该数据流是由一个一个字符(或字节)组成。c的数据文件不考虑行的界限,两行数据间不会自动加分隔符,对文件的存取是以字符(...
2020-01-30 19:47:26 447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人