动手学深度学习 v2.0
为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。通常,我们需要做两件重要的事:(1) 获取数据;(2)将数据读入计算机后对其进行处理。如果没有某种方法来存储数据,那么获取数据是没有意 义的。 首先,我们介绍n维数组,也称为张量(tensor)。使用过Python中NumPy计算包的读者会对本部分很熟悉。 无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray,在PyTorch和TensorFlow中为Tensor)都 关经验,想要深入学习数学内容,可以跳过本节。 首先,我们导入torch。请注意,虽然它被称为PyTorch,但是代码中使用torch而不是pytorch。 import torch 张量表示一个由数值组成的数组,这个数组可能有多个维度。具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix);具有两个轴以上的张量没有特殊的数学名称。 首先,我们可以使用 arange , 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]]) 有时我们想通过从某个特定的概率分布中随机采样来得到张量中每个元素的值。例如,当我们构造数组来作 为神经网络中的参数时,我们通常会随机初始化参数的值。以下代码创建一个形状为(3,4)的张量。其中的 每个元素都从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样。 torch.randn(30 码力 | 797 页 | 29.45 MB | 1 年前3机器学习课程-温州大学-numpy使用总结
NumPy数组(ndarry)对象 03 ufunc函数 04 NumPy的函数库 3 1.NumPy概述 01 NumPy概述 02 NumPy数组(ndarry)对象 03 ufunc函数 04 NumPy的函数库 4 NumPy(Numeric Python)是Python的一种开源的数值计算扩展库。 它包含很多功能: · 创建n维数组(矩阵) 创建n维数组(矩阵) · 对数组进行函数运算 · 数值积分 · 线性代数运算 · 傅里叶变换 · 随机数产生 ······ NumPy是什么? 5 NumPy提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处 理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大 型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore, NASA 用其处理一些本来使用 C++,Fortran 标准的Python中用list(列表)保存值,可以当做数组使用,但因为列表 中的元素可以是任何对象,所以浪费了CPU运算时间和内存。 NumPy诞生为了弥补这些缺陷。它提供了两种基本的对象: ndarray:全称(n-dimensional array object)是储存单一数据类型的 多维数组。 ufunc:全称(universal function object)它是一种能够对数组进行处 理的函数。 NumPy的官方文档:0 码力 | 49 页 | 1.52 MB | 1 年前3Keras: 基于 Python 的深度学习库
optimizers.SGD(lr=0.01, momentum=0.9, nesterov=True)) 现在,你可以批量地在训练数据上进行迭代了: # x_train 和 y_train 是 Numpy 数组 -- 就像在 Scikit-Learn API 中一样。 model.fit(x_train, y_train, epochs=5, batch_size=32) 或者,你可以手动地将批次的数据提供给模型: model.compile(optimizer='rmsprop', loss='binary_crossentropy', loss_weights=[1., 0.2]) 我们可以通过传递输入数组和目标数组的列表来训练模型: model.fit([headline_data, additional_data], [labels, labels], epochs=50, batch_size=32) get_weights(): 返回模型权重的张量列表,类型为 Numpy array。 • model.set_weights(weights): 从 Nympy array 中为模型设置权重。列表中的数组必须与 get_weights() 返回的权重具有相同的尺寸。 • model.to_json(): 以 JSON 字符串的形式返回模型的表示。请注意,该表示不包括权重, 只包含结构。你可以通过以下代码,从0 码力 | 257 页 | 1.19 MB | 1 年前3PyTorch OpenVINO 开发实战系列教程第一篇
现对整个计算图参数的评估优化。但是到底什么是张量?可以 看下面这张图: 图 1-3(张量表示) PyTorch + OpenVINO 开发实战系列教程 第一篇 5 上图 1-3 中标量、向量、数组、3D、4D、5D 数据矩阵在深 度学习框架中都被称为张量。可见在深度学习框架中所有的数 据都是张量形式存在,张量是深度学习数据组织与存在一种数 据类型。 ● 算子 / 操作数 深度学习 是 torch.FloatTensor 的别名,所以默认的 数据类型是 flaot32,这点从 a.dtype 的打印结果上也得了印 证。此外 torch.Tensor 函数还支持从 Numpy 数组直接转换 为张量数据,这种定义声明张量数据的代码如下: b = torch.tensor(np.array([[1,2],[3,4],[5,6],[7, 8]])) print(b) 运行结果: [7, 8]], dtype=torch.int32) 根据数据类型的自动识别,转换为 torch.int32 的数据类型。 除了直接声明常量数组的方式,Pytorch 框架还支持类似 Matlab 方式的数组初始化方式,可以定义数组的维度,然后 初始化为零,相关的演示代码如下: c = torch.zeros([2, 4], dtype=torch.float32) print(c)0 码力 | 13 页 | 5.99 MB | 1 年前3机器学习课程-温州大学-03深度学习-PyTorch入门
01 Tensors张量 02 Autograd自动求导 03 神经网络 04 训练一个分类器 4 1.Tensors张量的概念 Tensor实际上就是一个多维数组(multidimensional array) 标量(0阶张量) 向量(1阶张量) 矩阵(2阶张量) 张量(大于等于3阶张量) 1.2 5 创建张量的几种方法 用现有数据创建张量,使用 tensor不能直接转为numpy数组,必须先转到CPU tensor。 如果tensor是标量的话,可以直接使用 item() 函数(只能是标量)将值取出来:loss_output.item() 1.Tensors张量的概念 8 Tensor与NumPy的异同 对比项 NumPy Tensor 相同点 可以定义多维数组,进行切片、改变维度、 数学运算等 可以定义多维数组,进行切片、改变维度、数学运 可以定义多维数组,进行切片、改变维度、数学运 算等 不同点 1、产生的数组类型为 numpy.ndarray; 2、会将ndarray放入 CPU中进行运算; 3、导入方式为import numpy as np,后续 通过np.array([1,2])建立数组; 4、numpy中没有x.type()的用法,只能使用 type(x)。 1、产生的数组类型为torch.Tensor; 2 、会将tensor放入GPU中进行加速运算(0 码力 | 40 页 | 1.64 MB | 1 年前3【PyTorch深度学习-龙龙老师】-测试版202112
保存样本点 data = np.array(data) # 转换为 2D Numpy 数组 通过 for 循环进行 100 次采样,每次从均匀分布?(−1 ,1 )中随机采样一个数据?,同时从 均值为 0,方差为 .12的高斯分布?( , .12)中随机采样噪声?,根据真实模型生成?的数 据,并保存为 Numpy 数组。 2. 计算误差 循环计算函数在每个点(?(?), ?(?)) 3 的向量(Vector)来表示,向量的 3 个 元素依次代表了当前像素点上面的 R、G、B 颜色强值,因此彩色图片需要保存为形状是 [ℎ, ?, 3]的张量(Tensor,可以通俗地理解为 3 维数组)。如果是灰度图片,则使用一个数值 来表示灰度强度,例如 0 表示纯黑,255 表示纯白,因此它只需要一个形状为[ℎ, ?]的二维 矩阵(Matrix)来表示一张图片信息(实际上,也可以保存为[ℎ, 列实数的有序集合,如[[1,2],[3,4]],也可以写成 [1 2 3 4] 形式。维度数为 2,每个维度上的长度不定,shape 为[?, ?]。 ❑ 张量(Tensor)。所有维度数dim > 2的数组统称为张量。张量的每个维度也叫作轴 (Axis),通常某个维度代表了特定的物理含义,比如 Shape 为[2,3,32,32]的张量共有 4 维,如果表示图片数据的话,每个维度/轴代表的含义通常定义为图片数量、图片通道0 码力 | 439 页 | 29.91 MB | 1 年前3机器学习课程-温州大学-01机器学习-引言
集合主要有两个功能,一个功能是进行集合操作,另一个功能是消除重复元素。 集合的格式 是:set( ),其中()内可以是列表、字典或字符串,因为字符串是以列表的形式存储的 ⚫字典(dict) 字典dict也叫做关联数组,用大括号{ }括起来,在其他语言中也称为map,使用键-值( key-value)存储,具有极快的查找速度,其中key不能重复。 56 Python控制流 ⚫顺序结构 ⚫分支结构 ⚫循环结构 ⚫Matplotlib ⚫Scikit-learn Python模块 59 Python模块-NumPy ⚫NumPy NumPy是一个用Python实现的科学计算的扩展程序库,包括: 1、一个强大的N维数组对象Array; 2、比较成熟的(广播)函数库; 3、用于整合C/C++和Fortran代码的工具包; 4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy 配合使用更加方便。 写入JSON格式的文件 df.to_clipboard() | 写入剪切板 68 Python模块-SciPy ⚫SciPy SciPy是构建在NumPy的基础之上的,它 提供了许多的操作NumPy的数组的函数。 SciPy是一款方便、易于使用、专为科学和 工程设计的Python工具包,它包括了统计 、优化、整合以及线性代数模块、傅里叶 变换、信号和图像图例,常微分方差的求 解等 scipy0 码力 | 78 页 | 3.69 MB | 1 年前3机器学习课程-温州大学-01深度学习-引言
集合主要有两个功能,一个功能是进行集合操作,另一个功能是消除重复元素。 集合的格式 是:set( ),其中()内可以是列表、字典或字符串,因为字符串是以列表的形式存储的 ⚫字典(dict) 字典dict也叫做关联数组,用大括号{ }括起来,在其他语言中也称为map,使用键-值( key-value)存储,具有极快的查找速度,其中key不能重复。 57 Python控制流 ⚫顺序结构 ⚫分支结构 ⚫循环结构 ⚫Matplotlib ⚫Scikit-learn Python模块 60 Python模块-NumPy ⚫NumPy NumPy是一个用Python实现的科学计算的扩展程序库,包括: 1、一个强大的N维数组对象Array; 2、比较成熟的(广播)函数库; 3、用于整合C/C++和Fortran代码的工具包; 4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy 配合使用更加方便。 写入JSON格式的文件 df.to_clipboard() | 写入剪切板 69 Python模块-SciPy ⚫SciPy SciPy是构建在NumPy的基础之上的,它 提供了许多的操作NumPy的数组的函数。 SciPy是一款方便、易于使用、专为科学和 工程设计的Python工具包,它包括了统计 、优化、整合以及线性代数模块、傅里叶 变换、信号和图像图例,常微分方差的求 解等 scipy0 码力 | 80 页 | 5.38 MB | 1 年前3《TensorFlow 快速入门与实战》5-实战TensorFlow手写体数字识别
10,000 个测试样例, 由纽约大学的 Yann LeCun 等人维护。 获取 MNIST 数据集 MNIST 手写体数字介绍 MNIST 图像数据集使用形如[28,28]的二阶数组来表示每个手写体数字,数组中 的每个元素对应一个像素点,即每张图像大小固定为 28x28 像素。 MNIST 手写体数字介绍 MNIST 数据集中的图像都是256阶灰度图,即灰度值 0 表示白色(背景),2550 码力 | 38 页 | 1.82 MB | 1 年前3全连接神经网络实战. pytorch 版
我们需要先导入 pytorch,顺便导入 numpy: import torch import numpy as np 现在我们尝试将 list 或者 np.array 转换为 pytorch 的数组: data1 = [ [ 1 , 2 ] , [ 3 , 4 ] ] data_tensor = torch . tensor ( data1 ) print ( data_tensor . 0 0] (1.2.1) [0 1 0] (1.2.2) [0 0 1] (1.2.3) Lambda 函数就是应用用户定义的 lambda 函数,首先使用 zeros 函数创建一个 10 维数组, 然后调用.scatter 函数为每个向量的第 label 个索引赋值为 1。 由于 pytorch 的网络训练会自动帮你进行转换,所以我们不需要自己去操作,因此并不需要 设置 target_transf0 码力 | 29 页 | 1.40 MB | 1 年前3
共 15 条
- 1
- 2