张量

Keras学习手册(三),开始使用 Keras 函数式 API

蓝咒 提交于 2020-04-08 08:30:45
感谢作者分享- http://bjbsair.com/2020-04-07/tech-info/30658.html Keras 函数式 API 是定义复杂模型(如多输出模型、有向无环图,或具有共享层的模型)的方法。 这部分文档假设你已经对 Sequential 顺序模型比较熟悉。 让我们先从一些简单的例子开始。 例一:全连接网络 Sequential 模型可能是实现这种网络的一个更好选择,但这个例子能够帮助我们进行一些简单的理解。 网络层的实例是可调用的,它以张量为参数,并且返回一个张量 输入和输出均为张量,它们都可以用来定义一个模型(Model) 这样的模型同 Keras 的 Sequential 模型一样,都可以被训练 from keras.layers import Input, Dense from keras.models import Model # 这部分返回一个张量 inputs = Input(shape=(784,)) # 层的实例是可调用的,它以张量为参数,并且返回一个张量 x = Dense(64, activation='relu')(inputs) x = Dense(64, activation='relu')(x) predictions = Dense(10, activation='softmax')(x) #

学习 PyTorch 的 Examples

我们两清 提交于 2020-03-12 00:38:11
要查看格式更加优美的图文并茂的教程,请移步: http://studyai.com/pytorch-1.4/beginner/pytorch_with_examples.html 本教程通过自包含的例子介绍 PyTorch 的基本概念。 PyTorch的核心是提供了两个主要特性: n维Tensor,类似于numpy,但可以在GPU上运行。 建立和训练神经网络的自动微分 我们将使用一个完全连接的relu网络作为我们的运行示例。 该网络将有一个单一的隐藏层,并将用梯度下降训练, 为了适应随机数据,通过最小化网络输出和真正的输出的欧氏距离 来更新网络模型参数。 Note 你可以单独浏览和下载这个示例,在 这个页面的最后 。 张量 热身: numpy 在介绍PyTorch之前,我们首先使用numpy实现网络。 Numpy提供了一个n维数组对象,以及许多用于操作这些数组的函数. Numpy是一个用于科学计算的通用框架;它对计算图、深度学习或梯度一无所知。 但是,我们可以很容易地使用numpy来拟合两层网络中的随机数据, 方法是使用numpy操作手动实现前后向通过网络: - - coding: utf-8 - - import numpy as np N is batch size; D_in is input dimension; H is hidden dimension; D_out

PyTorch的张量是什么?

一个人想着一个人 提交于 2020-03-10 23:28:00
这是一个基于Python的科学计算包,针对两组受众: 想要替换NumPy从而使用GPU的计算能力 提供最大灵活性和速度的深度学习研究平台 开始走起 Tensors Tensors 类似于NumPy的 ndarrays, 另外,它还可以在GPU上使用加速计算。 from future import print_function import torch 构建一个 5x3 矩阵, 未初始化: x = torch.empty(5, 3) print(x) 构建一个随机初始化的矩阵: x = torch.rand(5, 3) print(x) 创建一个矩阵,用 0 填充,数据类型为 long: x = torch.zeros(5, 3, dtype=torch.long) print(x) 直接从已有的数据(不是Tensor类型)创建一个矩阵: x = torch.tensor([5.5, 3]) print(x) 或者基于一个已有的tensor创建一个新的tensor。这类方法将会重用 输入tensor的属性, e.g. dtype, 除非用户提供了新的属性值 x = x.new_ones(5, 3, dtype=torch.int) # new_* 方法需要接受 sizes 参数 print(x) x = torch.randn_like(x, dtype=torch.float) #

tensorflow学习之tensor操作函数

纵然是瞬间 提交于 2020-03-08 20:20:04
1.定义各种数组 a = np.array([[1,2,3],[4,5,6]]) # 数组转tensor:数组a, tensor_a=tf.convert_to_tensor(a) # tensor转数组:tensor b, array_b=b.eval() b = tf.convert_to_tensor(a) # 将np定义数组转化为tensor c = tf.constant([[1,2,3],[4,5,6]]) d_list = [[1,2,3],[4,5,6]] 2.tf.shape(tensor) tensor.tf.get_shape() # tf.shape()很显然这个是获取张量的大小的, tf.shape()返回的是一个tensor,要想知道是多少,必须通过sess.run() # x.get_shape(),只有tensor才可以使用这种方法,返回的是一个元组,不能放到sess.run()里面,这个里面只能放operation和tensor # c.get_shape().as_list()返回一个list import tensorflow as tf import numpy as np a = np.array([[1,2,3],[4,5,6]]) b = tf.convert_to_tensor(a) # 将np定义数组转化为tensor c = tf

Keras网络层之常用层Core

孤街醉人 提交于 2020-03-05 12:27:22
常用层 常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接、激活层等 Dense层 keras.layers.core.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None) Dense就是常用的全连接层,所实现的运算是output = activation(dot(input ,kernel) + bias ).其中activation是逐元素计算的激活函数,kernel是本层的权值矩阵,bias为偏置向量,只有当use_bias=True才会添加。 如果本层的输入数据的维度大于2,则会先被压为与kernel相匹配的大小。 #as first Layer in a sequential model: #as first Layer in a sequential model: model = Sequential() model.add(Dense(32,

yolo解读

a 夏天 提交于 2020-03-04 19:29:19
转载 https://blog.csdn.net/leviopku/article/details/82660381 版权申明:转载和引用图片,都必须经过书面同意。获得留言同意即可 本文使用图片多为本人所画,需要高清图片可以留言联系我,先点赞后取图 这篇博文比较推荐的yolo v3代码是qwe的keras版本,复现比较容易,代码相对来说比较容易理解。同学们可以结合代码和博文共同理解v3的精髓。 github地址: https://github.com/qqwweee/keras-yolo3 前言 前言就是唠唠嗑,想直接看干货可以跳过前言,直接看Yolo v3。 yolo_v3是我最近一段时间主攻的算法,写下博客,以作分享交流。 看过yolov3论文的应该都知道,这篇论文写得很随意,很多亮点都被作者都是草草描述。很多骚年入手yolo算法都是从v3才开始,这是不可能掌握yolo精髓的,因为v3很多东西是保留v2甚至v1的东西,而且v3的论文写得很随心。想深入了解yolo_v3算法,是有必要先了解v1和v2的。以下是我关于v1和v2算法解析所写的文章: v1算法解析:《 yolo系列之yolo v1 》 v2算法解析:《 yolo系列之yolo v2 》 yolo_v3作为yolo系列目前最新的算法,对之前的算法既有保留又有改进。先分析一下yolo_v3上保留的东西: “分而治之”

pytorch中nonzero()的用法

坚强是说给别人听的谎言 提交于 2020-03-04 06:24:43
pytorch中nonzero()的用法 nonzero():返回一个包含输入Input中非0元素索引的张量(以张量的形式返回非0索引) import torch a = torch . Tensor ( [ 1 , 2 , 4 , 4 , 5 ] ) print ( torch . nonzero ( a < 4 ) ) a<4:输出的是布尔值索引(掩码)[1,1,0,0,0] print(torch.nonzero(a<4)):输出布尔值索引非0的位置 来源: CSDN 作者: 燕小硕 链接: https://blog.csdn.net/weixin_44928646/article/details/104629119

深度学习pytorch入门之张量Tensor详解

十年热恋 提交于 2020-03-03 20:05:03
文章目录 一、简介 二、查看帮助文档 三、 一、简介 Tensor,又名张量,是pytorch、tensorflow、Theano等深度学习框架中重要的数据结构。关于张量的本质,我们可以简单的认为就是一个数组,它可以是一个数(标量)、一维数组(向量)、二维数组(矩阵)、多维数组…,pytorch的tensor支持GPU加速。 二、查看帮助文档 在ipython或者notebook中,使用function?方法或者help(function)方法可以查看一个函数的帮助文档,比如构造参数等等,以torch的save方法为例: (1)function?方法 输入 torch.save? ,shift+enter即可得到它的帮助文档 Docstring: ones ( * size , out=None , dtype=None , layout=torch . strided , device=None , requires_grad=False ) - > Tensor Returns a tensor filled with the scalar value `1` , with the shape defined by the variable argument :attr:`size` . Args: size ( int . . . ) : a sequence of

06-01 DeepLearning-图像识别

房东的猫 提交于 2020-03-03 11:50:33
文章目录 深度学习-图像识别 人脸定位 手工提取特征的图像分类 识图认物 传统分类系统的特征提取 计算机眼中的图像 什么是图像特征? 卷积运算 利用卷积提取图像特征 基于神经网络的图像分类 传统图像分类系统和深度神经网络 深度神经网络的架构 卷积层 池化层 全连接层 归一化指数层 非线性激活层 Sigmoid函数 双曲正切函数 ReLU函数 深度神经网络的训练 反向传播算法 图像分类应用——人脸识别 人脸识别的流程 人脸识别应用场景 小结 深度学习-图像识别 人脸定位   相信你们外出游玩的时候,都不会带上你的牛逼plus诺基亚手机出门,而是带上你的智能手机给自己美美的拍上一张。当你用手机镜头对准人脸的时候,都会出现一个矩形框,如下图所示(前方高能),那么这个技术是怎么做到的呢?   相机中的人脸定位技术用的是二分类技术。该技术流程如下图所示。   如上图所示,相机首先会将照片分割成一块块的图像块,一张照片往往会有成千上万的图像块被切割出来。   然后每一个图像块都会经过人脸分类器去判别是否是人脸。人脸分类器是预先训练好的分类器,类似于我们之前讲的手写数字识别应用程序中的支持向量机分类器。如果人脸分类器预测该图像块为人脸,相机则会在这个图像块中显示出框的位置。   在人脸定位中,为了解决由于手机离人的距离不同,导致手机上显示的人脸大小不一致的问题。手机在切割图像的时候

Pytorch笔记 (3) 科学计算2

僤鯓⒐⒋嵵緔 提交于 2020-03-01 05:50:44
一、组织张量的元素 (1)重排张量元素 本节介绍在不改变 张量元素个数 和 各元素的值的情况下改变张量的大小 torch.Tensor类的成员方法 reshape() 参数是多个int类型的值。 如果想要把一个张量的大小改成 s[0],s[1],s[2],s[3]....那就让s[0],s[1],s[2],s[3]....作为reshape() 方法的n个参数 使用 reshape() 在不改变元素个数和各元素的值的情况下改变张量大小 tc = torch.arange(12) #张量大小 (12,) print('tc={}'.format(tc)) t322 = tc.reshape(3,2,2) #张量大小 (3,2,2) print('t322={}'.format(t322)) t43 = t322.reshape(4,3) #张量大小(4,3) print('t43={}'.format(t43)) tc=tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) t322=tensor([[[ 0, 1], [ 2, 3]], [[ 4, 5], [ 6, 7]], [[ 8, 9], [10, 11]]]) t43=tensor([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]])