矩阵乘法

Python学习(四)数组和矩阵

不想你离开。 提交于 2019-11-26 17:50:25
参考资料: https://github.com/lijin-THU/notes-python(相应实体书为:《自学Python——编程基础、科学计算及数据分析》) 一、生成数组的函数 1. arange()函数:类似于python中的range()函数,只不过返回的不是列表,而是 返回数组 (1)arange(start, stop=None, step=1, dtype=None)  //产生一个在区间 [start, stop) 之间( 不包括stop ),以 step 为间隔的数组,如果只输入一个参数,则默认从 0 开始,并以这个值为结束,数组类型由dtype指定 (2)与 range 不同, arange 允许非整数值输入,产生一个非整型的数组:np.arange(0, 2 * np.pi, np.pi / 4) 或 np.arange(0, 2 * np.pi, np.pi / 4, dtype=np.float32) 注:由于存在精度问题,使用浮点数可能出现问题,如 np.arange(1.5, 2.1, 0.3) 返回 array([1.5, 1.8, 2.1])   终点stop的值2.1 出现在数组中 2. linspace()函数:linspace(start, stop, N)  产生 N 个 等距分布 在 [start, stop] 间的元素组成的数组,

6、循环神经网络(RNN)

北城以北 提交于 2019-11-26 14:04:59
6.1 为什么需要RNN? ​时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。一般的神经网络,在训练数据足够、算法模型优越的情况下,给定特定的x,就能得到期望y。其一般处理单个的输入,前一个输入和后一个输入完全无关,但实际应用中,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如: ​当我们在理解一句话意思时,孤立的理解这句话的每个词不足以理解整体意思,我们通常需要处理这些词连接起来的整个序列; 当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。为了解决一些这样类似的问题,能够更好的处理序列的信息,RNN就由此诞生了。 6.2 图解RNN基本结构 6.2.1 基本的单层网络结构 ​在进一步了解RNN之前,先给出最基本的单层网络结构,输入是 $x$ ,经过变换 Wx+b 和激活函数 f 得到输出 y : 6.2.2 图解经典RNN结构 ​在实际应用中,我们还会遇到很多序列形的数据,如: 自然语言处理问题。x1可以看做是第一个单词,x2可以看做是第二个单词,依次类推。 语音处理。此时,x1、x2、x3……是每帧的声音信号。 时间序列问题。例如每天的股票价格等等。 其单个序列如下图所示: 前面介绍了诸如此类的序列数据用原始的神经网络难以建模,基于此,RNN引入了隐状态$h$

NumPy的详细教程

假如想象 提交于 2019-11-26 12:58:40
先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutorial. 如果你想要运行教程中的示例,你至少需要在你的电脑上安装了以下一些软件: Python NumPy 这些是可能对你有帮助的: ipython是一个净强化的交互Python Shell,对探索NumPy的特性非常方便。 matplotlib将允许你绘图 Scipy在NumPy的基础上提供了很多科学模块 基础篇 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。 例如,在3D空间一个点的坐标[1, 2, 3]是一个秩为1的数组,因为它只有一个轴。那个轴长度为3.又例如,在以下例子中,数组的秩为2(它有两个维度).第一个维度长度为2,第二个维度长度为3. [[1.,0.,0.], [0.,1.,2.]] NumPy的数组类被称作ndarray 。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。更多重要ndarray对象属性有: ndarray.ndim 数组轴的个数,在python的世界中,轴的个数被称作秩 ndarray

深度学习-DCGAN论文的理解笔记

懵懂的女人 提交于 2019-11-26 12:36:19
训练方法 DCGAN 的训练方法跟GAN 是一样的,分为以下三步: (1)for k steps:训练D 让式子[logD(x) + log(1 - D(G(z)) (G keeps still)]的值达到最大 (2)保持D 不变,训练G 使式子[logD(G(z))]的值达到最大 (3)重复step(1)和step(2)直到G 与D 达到纳什均衡 Alec Radford等人于2016年初提出DCGAN以改善GAN的可训练性。他们认为传统GAN之所以不稳定,一个原因便是判别器D搭载的是初级的多层感知机模型,为了将火热的CNN纳入GAN的体系中,作者将多层感知机用CNN进行替换,并做了如下改进:  1 将池化层用stride=1stride=1的卷积层代替 2 将输给生成器G的100维噪声映射为四维张量用作CNN输入而不是向量 3 每进行一次卷积操作就进行批规一化(Batch Normalization) 4 使用ReLU层替换传统的Sigmoid函数,并对输出层使用Tanh激活 5 对判别器D使用LeakyReLU函数作为激活函数 6 移除所有全连接层   在以上改进的支撑下,论文给出了生成器G的网络结构:     经实验验证,该模型生成的图像较为稳定,虽然只能生成64*64大小的图像,但是这可以通过一些基本的图像处理方法,如金字塔来提升生成图像的分辨率

友链

扶醉桌前 提交于 2019-11-26 11:06:19
同届 chdy startaidou Faullest blng melody AK-ls Tyouchie millope yycdeboke gcfer BIGBIGPPT 神犇 zkw byvoid hzwer PoPoQQQ matrix67 yyb Tangenter ⚡cdecl⚡ 学长 Cydiater chty 137shoebills xorex qywyt my_snowing strangedddf UnicornXi left_right Cyxhsa rain under sea mdb jlfeng toughyt 常用网站 魔方小站 OIer博客 马同学高等数学 懒得画图论的同学有福啦 在线手写公式识别 NOIp dqcsm1964 宣传视频 2018年山东科技大学ACM编程竞赛协会纳新宣传视频 2016年成都七中OI队宣传视频 数论 数论知识总结——史诗大作(这是一个flag) OI数学知识 感受一下无穷的公式 解析几何入门 Dp 状压DP详解(位运算) 背包问题 DP 动态规划初步——各种子序列问题 图论 C++迪杰斯特拉算法求最短路径 图的存储结构之邻接表(详解) 图论中的割点,割边,圈与块 Tarjan 浅析强连通分量(Tarjan和kosaraju) Tarjan算法:求解图的割点与桥(割边) 双连通分量 tarjan求强连通分量+缩点+割点

【学习笔记】动态规划—各种 DP 优化

雨燕双飞 提交于 2019-11-26 09:20:18
【学习笔记】动态规划—各种 DP 优化 【大前言】 个人认为贪心, \(dp\) 是最难的,每次遇到题完全不知道该怎么办,看了题解后又瞬间恍然大悟(TAT)。这篇文章也是花了我差不多一个月时间才全部完成。 【进入正题】 用动态规划解决问题具有 空间耗费大 、 时间效率高 的特点,但也会有时间效率不能满足要求的时候,如果算法有可以优化的余地,就可以考虑时间效率的优化。 【DP 时间复杂度的分析】 \(DP\) 高时间效率的关键在于它减少了“ 冗余 ”,即不必要的计算或重复计算部分,算法的冗余程度是决定算法效率的关键。而动态规划就是在将问题规模不断缩小的同时,记录已经求解过的子问题的解,充分利用求解结果,避免了反复求解同一子问题的现象,从而减少“ 冗余 ”。 但是,一个动态规划问题很难做到完全消除“ 冗余 ”。 下面给出动态规划时间复杂度的决定因素: 时间复杂度 \(=\) 状态总数 \(×\) 每个状态转移的状态数 \(×\) 每次状态转移的时间 【DP 优化思路】 一:减少状态总数 \((1).\) 改进状态表示 \((2).\) 选择适当的规划方向 二:减少每个状态转移的状态数 \((1).\) 四边形不等式和决策的单调性 \((2).\) 决策量的优化 \((3).\) 合理组织状态 \((4).\) 细化状态转移 三:减少状态转移的时间 \((1).\) 减少决策时间 \(

动手学PyTorch | (31) 循环神经网络

天涯浪子 提交于 2019-11-26 07:31:28
上⼀节介绍的n元语法中,时间步t的词 基于前⾯所有词的条件概率只考虑了最近时间步的n-1个词。如果要考虑⽐t-(n-1)更更早时间步的词对 的可能影响,我们需要增⼤n.但这样模型参数的数量将随之呈指数级增长。 本节介绍循环神经网络。它并非刚性地记忆所有固定长度的序列,⽽是通过隐藏状态来存储之前时间步的信息。⾸先我们回忆一下前面介绍过的多层感知机,然后描述如何添加隐藏状态来将它变成循环神经网络。 目录 1. 不含隐藏状态的神经网络 2. 含隐藏状态的循环神经网络 3. 应用:基于字符级循环神经网络的语言模型 4. 小结 1. 不含隐藏状态的神经网络 让我们考虑一个含单隐藏层的多层感知机。给定样本数为n,输入个数(特征数或特征向量维度)为d的小批量数据样本 .设隐藏层的激活函数为 ,那么隐藏层的输出 计算为: 其中隐藏层权􏰀重参数 ,隐藏层偏差参数 ,h为隐藏单元数。上式相加的两项形状不同,因此将按照⼴播机制相加。把隐藏变量H作为输出层的输入,且设输出个数为q(如分类问题中的类别数),输出层的输出为: 其中输出变量 ,输出层权重参数 ,输出层偏差参数 .如果是分类问 题,我们可以使⽤softmax(O)来计算输出类别的概率分布。 2. 含隐藏状态的循环神经网络 现在我们考虑输入数据存在时间相关性的情况。假设 是序列中时间步t的小批量输入, 是该时间步的隐藏变量。与多层感知机不同的是