迭代计算

Pytorch笔记 (2) 初识Pytorch

我怕爱的太早我们不能终老 提交于 2019-11-27 18:13:05
一、人工神经网络库 Pytorch ———— 让计算机 确定神经网络的结构 + 实现人工神经元 + 搭建人工神经网络 + 选择合适的权重 (1)确定人工神经网络的 结构: 只需要告诉Pytorch 神经网络 中的 神经元个数 每个神经元是怎么样的 【比如 输入 输出 非线性函数】 各神经元的连接方式 (2)确定人工神经元的权重值: 只需要告诉 pytorch 什么样的权重值比较好 (3)处理 输入和输出: pytorch 可以和其他库合作,协助处理神经网络的 输入和输出 二、利用Pytorch 实现 迷你AlphaGo 可以把X[0] X[1] X[2] 三个输入看作 当前局势,把y看作下一步要下的棋,把g看作胜率函数,以找到 最优的 下棋策略 我们不需要知道 从X到 y的 关系的形式,只需要搭建神经网络 不需要告诉神经元的权重都是多少,pytorch 可以帮助找到 神经元的权重 步骤: 只需要把下方 四段代码,前后连接,即可 (1)定义神经网络 from torch.nn import Linear,ReLU,Sequential net = Sequential( Linear(3,8), #第一层 8 个神经元 ReLU(),# 第一层神经元的 非线性函数是max(·,0) Linear(8,8), #第二层 8个神经元 ReLU(),#非线性函数是max(·,0)

Python列表推导式(for表达式)及用法

喜欢而已 提交于 2019-11-27 16:04:39
列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。 列表推导式的语法格式如下: [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ] 此格式中,[if 条件表达式] 不是必须的,可以使用,也可以省略。 通过列表推导式的语法格式,明显会感觉到它和 for 循环存在某些关联。其实,除去 [if 条件表达式] 部分,其余各部分的含义以及执行顺序和 for 循环是完全一样的(表达式其实就是 for 循环中的循环体),即它的执行顺序如下所示: for 迭代变量 in 可迭代对象 表达式 初学者可以这样认为,它只是对 for 循环语句的格式做了一下简单的变形,并用 [] 括起来而已,只不过最大的不同之处在于,列表推导式最终会将循环过程中,计算表达式得到的一系列值组成一个列表。 例如如下代码(程序一): a_range = range(10) # 对a_range执行for表达式 a_list = [x * x for x in a_range] # a_list集合包含10个元素 print(a_list) 上面代码的第 3 行会对 a_range 执行迭代,由于 a_range 相当于包含 10 个元素,因此程序生成的 a_list 同样包含 10 个元素,且每个元素都是 a_range 中每个元素的平方(由表达式 x

逻辑回归2-scikit-learn参数介绍

冷暖自知 提交于 2019-11-27 12:30:47
1.1 scikit-learn参数介绍 1.1.1 导入 from sklearn.linear_model import LogisticRegression 1.1.2 版本 scikit-learn==0.21.3 1.1.3 参数 1.1.3.1 penalty l1 、l2 、elasticnet 、none ,默认l2 l1: l1正则,邻回归 l2: l2正则,套索回归 elasticnet: 弹性网络,是邻回归和套索回归的正则项的混合 none: 什么都不加 在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑弹性网络和L1正则化,弹性网络优于L1正则,因为当特征数量超过训练实例数量,又或者是几个特征强相关时,L1正则的表现可能非常不稳定。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。 penalty参数的选择会影响损失函数优化算法的选择,即参数solver的选择。 若是L2正则,有4种可选的算法:“newton-cg”,“lbfgs”,“liblinear”,“sag”, 若是L1 正则,有1 种可选的算法:“liblinear ”,L1 正则化的损失函数不是连续可导的。 若是elasticnet

Python中下划线

旧时模样 提交于 2019-11-27 09:27:46
Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划线作为变量名的开始。 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。 “单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量; “双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。 以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。 现在我们来总结下所有的系统定义属性和方法, 先来看下保留属性: >>> Class1.__doc__ # 类型帮助信息

内置函数

[亡魂溺海] 提交于 2019-11-27 08:34:53
python官网 https://docs.python.org/3/library/functions.html?highlight=built#ascii 此文是转载的,自感非常好 Python内置函数作用及解析 2018年06月30日 15:44:45 alice_tl 阅读数 3905 标签: PythonPython内置函数更多 个人分类: Python 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/alice_tl/article/details/80867196 Python内置的函数及其用法。为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类: • 数学运算(7个) • 类型转换(24个) • 序列操作(8个) • 对象操作(7个) • 反射操作(8个) • 变量操作(2个) • 交互操作(2个) • 文件操作(1个) • 编译执行(4个) • 装饰器(3个) 接下来看看具体每个类别里包含了那些内置函数 一、数学运算类 abs(x) 求绝对值 1、参数可以是整型,也可以是复数 2、若参数是复数,则返回复数的模 complex([real[, imag]]) 创建一个复数 divmod(a, b) 分别取商和余数 注意:整型、浮点型都可以

蚁群算法

天大地大妈咪最大 提交于 2019-11-27 07:15:53
TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径, 路径的限制是每个城市只能拜访一次(通过禁忌表) ,而且最后要回到原来出发的城市,要求路径的总和最小 蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,首先使用在解决TSP(旅行商问题)上。 人工蚁群与真实蚁群对比: 相同点 不同点 都是为了寻找最短路径问题 人工蚁群具有记忆功能 都存在个体间的信息交互问题 人工蚁群的选择并不盲目性 都采用根据当前的信息进行随机选择策略 人工蚂蚁生活在离散的时间环境中 代码部分: 蚁群算法实现核心有两点 :1,蚂蚁如何选择下一个城市;2,城市间路径信息素如何更新。 a. 计算城市之间的转移概率: % 计算城市之间的转移概率 for k = 1:length(allow) P(k) = Tau(tabu(end),allow(k))^alpha * Eta(tabu(end),allow(k))^beta; %等式的分子 End P = P/sum(P); %上面等式的分母部分 在计算出来城市之间的转移概率之后还要用轮盘赌法的原因: 在得到剩下去城市概率,产生一个随机数,基于随机数决定去下面哪一个城市。例如:剩3个城市,概率为:0.1,0.2,0.7,累计概率为:0.1,0.3,0.7

[翻译]PyMongo官方文档

北城以北 提交于 2019-11-27 05:55:53
PyMongo官方文档翻译 周煦辰 2016-06-30 这是本人翻译的PyMongo官方文档。现在网上分(抄)享(袭)的PyMongo博客文章很多,一方面这些文章本就是抄袭的,谈不上什么格式美观,另一方面其实这些博客已经落后很久了,根本是不能作为参考的。遂自己翻译了一下。渣翻译请见谅,能看懂就行。 本翻译文档包含以下内容: 使用PyMongo插入数据 使用PyMongo查询数据 使用PyMongo更新数据 使用PyMongo删除数据 使用PyMongo进行数据聚合 使用PyMongo创建索引 原文地址见链接: 原文地址 PyMongo是一个用于MongoDB的Python工具,也是一个被推荐的Python操作MongoDB数据库的方式。 使用步骤 安装PyMongo Linux或者OS X系统 你可以只用pip工具安装: pip install pymongo Windows系统下 使用Windows安装工具,详见 https://pypi.python.org/pypi/pymongo/ 。 引入pymongo 在一个Python交互shell中完成此过程,或者也可以在其他Python环境中完成,例如Python脚本、Python模块、Python项目。 从pymongo中引入MongoClicent。 from pymongo import MongoClient

敏捷开发流程详解 

为君一笑 提交于 2019-11-27 05:39:14
敏捷开发流程详解 1 敏捷开发流程 ü 敏捷软件开发核心是迭代式开发,增量交付。 ü 每一次迭代都建立在稳定的质量基础上,并作为下一轮迭代的基线,整个系统的功能随着迭代稳定地增长和不断完善。每次迭代要邀请用户代表(外部或内部)验收,提供需求是否满足的反馈。 ü 迭代型的方法就是将整个软件生命周期分成多个小的迭代,每一次迭代都由需求分析、设计、实现和测试在内的多个活动组成,每一次迭代都可以生成一个稳定和被验证过的软件版本。 ü 迭代建议采用固定的周期(1-4)周,可以每个迭代周期不一定要相同,但迭代内工作不能完成,应该缩减交付范围而不是延长周期。 1.1 敏捷流程详解图-敏捷流程图 1.2 敏捷流程三种角色及其职责 角色名称 角色定义 角色职责 注意事项 Product Owner ( PO ) - 产品负责人 确保Team做正确的事 l 代表利益相关人(如用户、市场、管理等),对产品投资回报负责 l 确定产品发布计划 l 定义产品需求,根据市场价值确定功能优先级 l 验收迭代结果,并根据验收结果和需求变化更新需求清单和优先级 l 除了客户需求之外,内部任务如重构、持续集成环境搭建等也由PO纳入统一管理 Scrum Master ( SM ) - Scrum 教练 确保Team正确的做事 l 辅导团队正确应用敏捷实践 l 引导团队建立并遵守规则 l 保护团队不受打扰 l

闭包函数 装饰器 迭代器

一世执手 提交于 2019-11-27 03:51:11
闭包函数 一、什么是闭包 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用)。闭包指的是:函数内部函数对外部作用域而非全局作用域的引用。简单的说闭包函数就是把变量和函数一起包起来,下次要用直接使用 def outter(x): def inner(): print(x) return inner inner = outter(2) # inner # f = inner inner() inner() inner() # 查看闭包的元素 print(F"f.__closure__[0].cell_contents: {f.__closure__[0].cell_contents}") 结果: 2 2 2 f.__closure__[0].cell_contents: 2 二、闭包函数的应用 闭包的含义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹一层作用域,这使得该函数无论在何处调用,优先先使用自己外层包裹的作用域 应用领域:延迟计算(原来我们是传参的,现在我们包裹起来)、怕成领域 import requests def get(url): response = requests.get(url) print(f"done: {url}") get('https://www.baidu.com') get('https://www

day13

孤者浪人 提交于 2019-11-27 03:25:15
一、闭包函数 简单来说闭包函数是传参的另外一种方式,将参数+函数包在一起返回出去。 1.两种为函数传参的方式 # 1.使用参数的形式 def func(x): print(x) func(1) func(1) # 2.包给函数 def outter(x): def inner(): print(x) return inner f = outter(1) f() f() 2.闭包函数的应用 闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域。 应用领域:延迟计算(原来我们是传参,现在我们是包起来)、爬虫领域。 import requests def outter(url): def inner(): response = requests.get(url) print(f"done: {url}") return inner baidu = outter('www.baidu.com') python = outter('https://www.python.org') baidu() baidu() python() python() 二、装饰器 装饰器本质就是一个函数a,装饰的对象也是一个函数b,用一个函数a去装饰一个函数b 装饰器的实现必须遵循两大原则: 不修改被装饰对象的源代码