码迷,mamicode.com
首页 > 其他好文 > 详细

tensor 张量

时间:2021-01-01 11:55:29      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:port   有一个   通过   ted   向量   频率   net   股票   https   

概念

几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。


0维张量/标量 标量是一个数字

1维张量/向量 1维张量称为“向量”。

2维张量 2维张量称为矩阵

3维张量 公用数据存储在张量 时间序列数据 股价 文本数据 彩色图片(RGB)

让我们先来看看tensor(张量)是什么?

张量=容器

张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。

张量有多种形式,首先让我们来看最基本的形式,你会在深度学习中偶然遇到,它们在0维到5维之间。我们可以把张量的各种类型看作这样(对被题目中的猫咪吸引进来小伙伴说一句,不要急!猫咪在后面会出现哦!):

0维张量/标量 ,装在张量/容器水桶中的每个数字称为“标量”。标量是一个数字。你会问为什么不干脆叫它们一个数字呢?我不知道,也许数学家只是喜欢听起来酷?标量听起来确实比数字酷。

实际上,你可以使用一个数字的张量,我们称为0维张量,也就是一个只有0维的张量。它仅仅只是带有一个数字的水桶。想象水桶里只有一滴水,那就是一个0维张量。

本教程中,我将使用Python,Keras,TensorFlow和Python库Numpy。在Python中,张量通常存储在Nunpy数组,Numpy是在大部分的AI框架中,一个使用频率非常高的用于科学计算的数据包。

你将在Kaggle(数据科学竞赛网站)上经常看到Jupyter Notebooks(安装见文末阅读链接,“数学烂也要学AI:带你造一个经济试用版AI终极必杀器”)关于把数据转变成Numpy数组。Jupyter notebooks本质上是由工作代码标记嵌入。可以认为它把解释和程序融为一体。

我们为什么想把数据转换为Numpy数组?

很简单。因为我们需要把所有的输入数据,如字符串文本,图像,股票价格,或者视频,转变为一个统一得标准,以便能够容易的处理。

这样我们把数据转变成数字的水桶,我们就能用TensorFlow处理。

它仅仅是组织数据成为可用的格式。在网页程序中,你也许通过XML表示,所以你可以定义它们的特征并快速操作。同样,在深度学习中,我们使用张量水桶作为基本的乐高积木。

1维张量/向量 如果你是名程序员,那么你已经了解,类似于1维张量:数组

每个编程语言都有数组,它只是单列或者单行的一组数据块。在深度学习中称为1维张量。张量是根据一共具有多少坐标轴来定义。1维张量只有一个坐标轴。 1维张量称为“向量”。我们可以把向量视为一个单列或者单行的数字。

如果想在Numpy得出此结果,按照如下方法:我们可以通过NumPy’s ndim函数,查看张量具有多个坐标轴。我们可以尝试1维张量。

2维张量 你可能已经知道了另一种形式的张量,矩阵——2维张量称为矩阵,这不是基努·里维斯(Keanu Reeves)的电影《黑客帝国》,想象一个excel表格。我们可以把它看作为一个带有行和列的数字网格。这个行和列表示两个坐标轴,一个矩阵是二维张量,意思是有两维,也就是有两个坐标轴的张量。

源自:https://blog.csdn.net/qq_31821675/article/details/79188449

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 16 14:29:10 2020

@author: 86188
"""
from __future__ import print_function
import torch
‘‘‘
构造一个随机初始化的矩阵
x = torch.empty(5, 3)
print(x)
‘‘‘

‘‘‘
构造一个矩阵全为 0,而且数据类型是 long.
x= torch.zeros(5,3,dtype = torch.long)
print(x)
‘‘‘

‘‘‘
构造一个张量,直接使用数据:
x= torch.tensor([5.5,3])
print(x)
‘‘‘
‘‘‘
x = x.new_ones(5,3,dtype=torch.double)
print(x)

x = torch.randn_like(x,dtype = torch.float)
print(x)

print(x.size())

y = torch.rand(5,3)
print(x+y)


print(torch.add(x,y))

result = torch.empty(5,3)
torch.add(x,y,out = result)
print(result)

y.add_(x)
print(y)

print(x[:1])

‘‘‘
‘‘‘
x = torch.randn(4,4)
y = x.view(16)
z = x.view(-1,8)
print(x.size(),y.size(),z.size)
print(x,y,z)
‘‘‘
x =torch.randn(1)
print(x)
print(x.item())

 

tensor 张量

标签:port   有一个   通过   ted   向量   频率   net   股票   https   

原文地址:https://www.cnblogs.com/wuqinzhe/p/14197833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!