矩阵转置

Python矩阵逆转与转置

本秂侑毒 提交于 2019-12-06 15:12:22
numpy实现 import numpy as np np.transpose([list]) # 矩阵转置 np.transpose([list]).tolist() # 矩阵转list >>> import numpy as np >>> np.transpose([[1, 2, 3], [1, 2, 3], [1, 2, 3]]) array([[1, 1, 1], [2, 2, 2], [3, 3, 3]]) >>> np.transpose([[1, 2, 3], [1, 2, 3], [1, 2, 3]]).tolist() [[1, 1, 1], [2, 2, 2], [3, 3, 3]] 矩阵转置 矩阵的转置就是从行变成列, 列变成行 用zip将一系列可迭代对象中的元素打包为元组,之后将这些元组放置在列表中,两步加起来等价于行列转置。 # 矩阵的转置 def transpose(list1): return [list(row) for row in zip(*list1)] list1 = [[1, 4], [2, 5], [3, 6]] print(transpose(list1)) # [[1, 2, 3], [4, 5, 6]] # 矩阵逆转 def invert(list1): return [row[::-1] for row in list1]

奇异值与奇异向量

依然范特西╮ 提交于 2019-12-06 14:33:49
定义 特征值分解是求解方阵的特征,对于非方阵而言可以通过奇异值分解描述矩阵的特征。 对于矩阵A为m*n的矩阵,可以分解成如下形式: A是一个m*n的矩阵,那么得到的U是一个m * m的方阵(里面的向量是正交的,称为左奇异向量),Σ是一个m * n的矩阵(除了对角线的元素外,其它都是0,对角线上的元素称为奇异值),VT是一个n * n的矩阵(里面的向量也是正交的,称为右奇异向量)。 右奇异向量求解 矩阵A左乘转置AT,将会得到一个方阵(n*n),通过该方阵求特征值和特征向量,该特征向量即A的右奇异向量。 上面的Vi构成的矩阵即A的右奇异矩阵。 右奇异向量和奇异值的求解 根据上面得到的特征值λ,计算奇异值σ,以及左奇异向量u: python代码实现 dataA = np.array([[1, 1], [1, 1], [0, 0]]) lvecs, vals, rvecs = np.linalg.svd(dataA) 来源: https://my.oschina.net/u/4228078/blog/3137876

[04-00]单变量线性回归问题

血红的双手。 提交于 2019-12-06 10:06:41
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 第4章 单入单出的单层神经网络 4.0 单变量线性回归问题 4.0.1 提出问题 在互联网建设初期,各大运营商需要解决的问题就是保证服务器所在的机房的温度常年保持在23摄氏度左右。在一个新建的机房里,如果计划部署346台服务器,我们如何配置空调的最大功率? 这个问题虽然能通过热力学计算得到公式,但是总会有误差。因此人们往往会在机房里装一个温控器,来控制空调的开关或者风扇的转速或者制冷能力,其中最大制冷能力是一个关键性的数值。更先进的做法是直接把机房建在海底,用隔离的海水循环降低空气温度的方式来冷却。 通过一些统计数据(称为样本数据),我们得到了表4-1。 表4-1 样本数据 样本序号 服务器数量(千台)X 空调功率(千瓦)Y 1 0.928 4.824 2 0.469 2.950 3 0.855 4.643 ... ... ... 在上面的样本中,我们一般把自变量X称为样本特征值,把因变量Y称为样本标签值。 这个数据是二维的,所以我们可以用可视化的方式来展示,横坐标是服务器数量,纵坐标是空调功率,如图4-1所示。 图4-1 样本数据可视化 通过对上图的观察,我们可以判断它属于一个线性回归问题,而且是最简单的一元线性回归。于是

特征值与特征向量

北战南征 提交于 2019-12-06 07:11:40
特征值分解 如果一个向量v是方阵A的特征向量,可以表示成如下形式: 其中λ称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。 需要注意的是:只有方阵才能进行特征分解。 特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。 特征值的性质 设n阶矩阵A=(aij) 的特征值为λ1,λ2,...λn λ1+λ2+...+λn = a11+ a22+…+ann,trail(A)=特征值的和; λ1λ2… λn =|A|,特征值的乘积=A的行列式; 如果A是实对称矩阵,则特征向量两两正交,任意两个向量的叉积(np.cross)等于第三个特征向量; 如果A是实对称矩阵,则特征向量构成的矩阵Q有:Q的转置等于Q的逆,即 Q.T = np.linalg.inv(Q); 如果A是实对称矩阵,则特征向量构成的矩阵Q单位正交阵,即np.dot(Q, Q.T) = E; 代码实现 python: # 方阵A 此处为实对称矩阵 dataA = np.array([[0.00178, -0.00296, 0.000427], [-0.00296, 0.00704, -0.00093], [0.00043, -0.00093, 0.000197]]) # 求特征值和特征向量 #

卷积核filter和kernal的区别

余生颓废 提交于 2019-12-06 05:43:51
在一堆 介绍卷积的帖子中,这篇特别之处在于很萌的示例配色,令人眼前一亮,当然直观也是很直观滴,保证了能在昏昏欲睡见周公子前看完。 https:// towardsdatascience.com/ types-of-convolution-kernels-simplified-f040cb307c37 直观介绍各种迷人的CNN层 一个简短的介绍 卷积使用“kernel”从输入图像中提取某些“特征” 。kernel是一个矩阵,可在图像上滑动并与输入相乘,从而以某种我们期望的方式增强输出。看下面的GIF。 上面的kernel可用于锐化图像。但是这个kernel有什么特别之处呢?考虑下图所示的两个输入图像。第一个图像,中心值为3 * 5 + 2 * -1 + 2 * -1 + 2 * -1 + 2 * -1 =7,值3增加到7。第二个图像,输出是1 * 5 + 2 * -1 + 2 * -1 + 2 * -1 + 2 * -1 = -3,值1减少到-3。显然,3和1之间的对比度增加到了7和-3,图像将更清晰锐利。 通过深层 CNN,我们无需再用手工设计的kernel来提取特征,而是可以直接学习这些可提取潜在特征的kernel值。 Kernel与Filter 在深入探讨之前,我想先明确区分“kernel”和“filter”这两个术语,因为我已经看到很多人把它们混为一谈。如前所述

深度学习之数学基础(线性代数篇)

空扰寡人 提交于 2019-12-06 01:53:09
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/z4909801/article/details/78359952 2-1、标量 一个标量就是一个单独的数,一般用小写的的变量名称表示。 2-2、向量 一个向量就是一列数,这些数是有序排列的。用过次序中的索引,我们可以确定每个单独的数。通常会赋予向量粗体的小写名称。当我们需要明确表示向量中的元素时,我们会将元素排 列成一个方括号包围的纵柱: 我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。 2-3、矩阵 矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说 。 2-4、张量 几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分别是图片的高度、宽度和色彩数据。将这张图用张量表示出来,就是最下方的那张表格: 其中表的横轴表示图片的宽度值,这里只截取0~319;表的纵轴表示图片的高度值,这里只截取0~4;表格中每个方格代表一个像素点,比如第一行第一列的表格数据为[1.0,1.0,1

python numpy的基本操作

三世轮回 提交于 2019-12-06 01:09:23
站长资讯平台 :文章目录 0、NumPy 与 ndarry 1、数组属性查看:类型、尺寸、形状、维度 2、numpy元素中数据存储方式,数据类型,类型转换 2.1 查看元素数据存储类型 2.2 元素数据存储类型转换 3、List类型与numpy. ndarray类型的互相转换 4、创建 ndarray 数组 4.1 方法一:列表转换 4.2 zero,ones,empty函数创建特殊数组 4.3 arrange linspace 创建线性数组 5、矩阵的索引与打印 6、矩阵的运算 6.1 基础运算 6.2 点乘 6.3 其他矩阵特征运算 6.3 排序、转置、数值裁剪 7、其他操作 7.1 横纵向的拼接 7.2 矩阵添加或拼接新元素(append或concatenate) 7.3 新增维度 7.4 增减数组维度 7.5 矩阵的切片 7.6 reshape,ravel,flatten,transpose,shape,resize更改数组形状 8、常用操作 8.1 元素平方和 8.2 numpy转换成tensorflow的tensor LAST、未来得及添加的内容 0、NumPy 与 ndarry NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生。 它提供: 快速高效的多维数组对象 ndarray; 直接对数组执行数学运算及对数组执行元素级计算的函数;

Python numpy的基本操作你一般人都不会

拟墨画扇 提交于 2019-12-06 00:32:09
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要最新Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=a3a533247e4c084a72c9ae88c271e3d1 来看正文: 0、NumPy 与 ndarry NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生。 它提供: 快速高效的多维数组对象 ndarray; 直接对数组执行数学运算及对数组执行元素级计算的函数; 线性代数运算、随机数生成; 将 C、C++、Fortran 代码集成到 Python 的工具等。 它专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA 用其处理一些本来使用 C++,Fortran 或Matlab 等所做的任务。 ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。 ndarray 的一个特点是同构:即其中所有元素的类型必须相同。 1、数组属性查看:类型、尺寸、形状、维度 import numpy as np a1 = np.array([1,2,3,4],dtype

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

泪湿孤枕 提交于 2019-12-05 16:53:29
训练方法 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大小的图像,但是这可以通过一些基本的图像处理方法,如金字塔来提升生成图像的分辨率