精华内容
下载资源
问答
  • a = [[1.,2.],[3.,4.]] b = torch.tensor(a) # c = torch.tensor(b,dtype=torch.int) c = b.clone().type(torch.int) print(b) print(c)
    a = [[1.,2.],[3.,4.]]
    b = torch.tensor(a)
    # c = torch.tensor(b,dtype=torch.int)
    c = b.clone().type(torch.int)
    
    print(b)
    print(c)
    
    展开全文
  • 主要介绍了Pytorch生成随机数Tensor的方法汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • TensorFlow常用生成tensor函数

    万次阅读 2017-11-17 00:21:16
    舍入最接近的整数 # ‘a’ is [0.9, 2.5, 2.3, -4.4] tf.round(a) ==> [ 1.0, 3.0, 2.0, -4.0 ] tf.sqrt(x, name=None) 开根号 (y = \sqrt{x} = x^{1/2}). tf.pow(x, y, name=None) ...

    更多函数的使用:http://blog.csdn.net/lenbow/article/details/52152766

    参考博客:http://www.mamicode.com/info-detail-1823840.html

    生成全0和全1的矩阵

    tf.ones(shape,type=tf.float32,name=None)
    tf.zeros(shape, type=tf.float32,name=None)

    >>> x = tf.zeros([2, 3])
    >>> sess.run(x)
    array([[ 0.,  0.,  0.],
           [ 0.,  0.,  0.]], dtype=float32)
    >>> y = tf.ones([2, 3])
    >>> sess.run(y)
    array([[ 1.,  1.,  1.],
           [ 1.,  1.,  1.]], dtype=float32)


    tf.ones_like(tensor,dype=None,name=None) 

    tf.zeros_like(tensor,dype=None,name=None) 
    新建一个与给定的tensor类型大小一致的tensor,其所有元素为1和0

    >>> xx = tf.ones_like(x)
    >>> sess.run(xx)
    array([[ 1.,  1.,  1.],
           [ 1.,  1.,  1.]], dtype=float32)
    >>> yy = tf.zeros_like(y)
    >>> sess.run(yy)
    array([[ 0.,  0.,  0.],
           [ 0.,  0.,  0.]], dtype=float32)


    tf.fill(shape,value,name=None) 
    创建一个形状大小为shape的tensor,其初始值为value

    >>> z = tf.fill([2, 3], 2)
    >>> sess.run(z)
    array([[2, 2, 2],
           [2, 2, 2]])


    生成随机数:

    (1)tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None) 

    random_normal: 正太分布随机数,均值mean,标准差stddev 

    (2)tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None) 

    truncated_normal:截断正态分布随机数,均值mean,标准差stddev,不过只保留[mean-2*stddev,mean+2*stddev]范围内的随机数 

    (3)tf.random_uniform(shape,minval=0,maxval=None,dtype=tf.float32,seed=None,name=None) 

    random_uniform:均匀分布随机数,范围为[minval,maxval]

    (4)tf.random_shuffle(value,seed=None,name=None) 
    沿着value的第一维进行随机重新排列

    >>> sess.run(tf.random_normal([2, 3], 0.0, 0.05))
    array([[-0.09716501, -0.00082436,  0.00082046],
           [ 0.04063983,  0.06137555, -0.03889754]], dtype=float32)
    >>> sess.run(tf.random_uniform([2, 3], 1, 6))
    array([[ 1.53847492,  4.09809971,  2.94473267],
           [ 4.00791836,  3.95637321,  5.24030209]], dtype=float32)

    >>> c = tf.constant([[1, 2, 3],[4, 5, 6]])
    >>> sess.run(tf.random_shuffle(c))
    array([[4, 5, 6],
           [1, 2, 3]])

    tf.constant

    tf.constant(value,dtype=None,shape=None,name=’Const’) 

    >>> sess = tf.InteractiveSession()
    >>> a = tf.constant(2, tf.float32, [2, 3])
    >>> a.eval()
    array([[ 2.,  2.,  2.],
           [ 2.,  2.,  2.]], dtype=float32)
    >>> a = tf.constant(2., shape=[2, 3])
    >>> a.eval()
    array([[ 2.,  2.,  2.],
           [ 2.,  2.,  2.]], dtype=float32)
    


    tf.shape(Tensor) 

    返回张量的形状,tf.shape函数本身也是返回一个张量

    >>> sess.run(tf.shape(x))
    array([2, 3])

    tf.expand_dims(Tensor, dim) 

    为tensor增维和降维

    >>> a = tf.zeros([3])
    >>> sess.run(tf.shape(a))
    array([3])
    >>> sess.run(tf.shape(tf.expand_dims(a, 0)))
    array([1, 3])
    >>> sess.run(tf.shape(tf.expand_dims(a, 1)))
    array([3, 1])



    基本算术运算

     

    操作描述
    tf.add(x, y, name=None) 求和
    tf.sub(x, y, name=None) 减法
    tf.mul(x, y, name=None) 乘法
    tf.div(x, y, name=None) 除法
    tf.mod(x, y, name=None) 取模
    tf.abs(x, name=None) 求绝对值
    tf.neg(x, name=None) 取负 (y = -x).
    tf.sign(x, name=None) 返回符号 y = sign(x) = -1 if x < 0; 0 if x == 0; 1 if x > 0.
    tf.inv(x, name=None) 取反
    tf.square(x, name=None) 计算平方 (y = x * x = x^2).
    tf.round(x, name=None) 舍入最接近的整数
    # ‘a’ is [0.9, 2.5, 2.3, -4.4]
    tf.round(a) ==> [ 1.0, 3.0, 2.0, -4.0 ]
    tf.sqrt(x, name=None) 开根号 (y = \sqrt{x} = x^{1/2}).
    tf.pow(x, y, name=None) 幂次方 
    # tensor ‘x’ is [[2, 2], [3, 3]]
    # tensor ‘y’ is [[8, 16], [2, 3]]
    tf.pow(x, y) ==> [[256, 65536], [9, 27]]
    tf.exp(x, name=None) 计算e的次方
    tf.log(x, name=None) 计算log,一个输入计算e的ln,两输入以第二输入为底
    tf.maximum(x, y, name=None) 返回最大值 (x > y ? x : y)
    tf.minimum(x, y, name=None) 返回最小值 (x < y ? x : y)
    tf.cos(x, name=None) 三角函数cosine
    tf.sin(x, name=None) 三角函数sine
    tf.tan(x, name=None) 三角函数tan
    tf.atan(x, name=None) 三角函数ctan

    矩阵运算

     

    操作描述
    tf.diag(diagonal, name=None) 返回一个给定对角值的对角tensor
    # ‘diagonal’ is [1, 2, 3, 4]
    tf.diag(diagonal) ==> 
    [[1, 0, 0, 0]
    [0, 2, 0, 0]
    [0, 0, 3, 0]
    [0, 0, 0, 4]]
    tf.diag_part(input, name=None) 功能与上面相反
    tf.trace(x, name=None) 求一个2维tensor足迹,即对角值diagonal之和
    tf.transpose(a, perm=None, name=’transpose’) 调换tensor的维度顺序
    按照列表perm的维度排列调换tensor顺序,
    如为定义,则perm为(n-1…0)
    # ‘x’ is [[1 2 3],[4 5 6]]
    tf.transpose(x) ==> [[1 4], [2 5],[3 6]]
    # Equivalently
    tf.transpose(x, perm=[1, 0]) ==> [[1 4],[2 5], [3 6]]
    tf.matmul(a, b, transpose_a=False, 
    transpose_b=False, a_is_sparse=False, 
    b_is_sparse=False, name=None)
    矩阵相乘
    tf.matrix_determinant(input, name=None) 返回方阵的行列式
    tf.matrix_inverse(input, adjoint=None, name=None) 求方阵的逆矩阵,adjoint为True时,计算输入共轭矩阵的逆矩阵
    tf.cholesky(input, name=None) 对输入方阵cholesky分解,
    即把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解A=LL^T
    tf.matrix_solve(matrix, rhs, adjoint=None, name=None) 求解tf.matrix_solve(matrix, rhs, adjoint=None, name=None)
    matrix为方阵shape为[M,M],rhs的shape为[M,K],output为[M,K]

    复数操作

     

    操作描述
    tf.complex(real, imag, name=None) 将两实数转换为复数形式
    # tensor ‘real’ is [2.25, 3.25]
    # tensor imag is [4.75, 5.75]
    tf.complex(real, imag) ==> [[2.25 + 4.75j], [3.25 + 5.75j]]
    tf.complex_abs(x, name=None) 计算复数的绝对值,即长度。
    # tensor ‘x’ is [[-2.25 + 4.75j], [-3.25 + 5.75j]]
    tf.complex_abs(x) ==> [5.25594902, 6.60492229]
    tf.conj(input, name=None) 计算共轭复数
    tf.imag(input, name=None)
    tf.real(input, name=None)
    提取复数的虚部和实部
    tf.fft(input, name=None) 计算一维的离散傅里叶变换,输入数据类型为complex64

    归约计算(Reduction)

     

    操作描述
    tf.reduce_sum(input_tensor, reduction_indices=None, 
    keep_dims=False, name=None)
    计算输入tensor元素的和,或者安照reduction_indices指定的轴进行求和
    # ‘x’ is [[1, 1, 1]
    # [1, 1, 1]]
    tf.reduce_sum(x) ==> 6
    tf.reduce_sum(x, 0) ==> [2, 2, 2]
    tf.reduce_sum(x, 1) ==> [3, 3]
    tf.reduce_sum(x, 1, keep_dims=True) ==> [[3], [3]]
    tf.reduce_sum(x, [0, 1]) ==> 6
    tf.reduce_prod(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    计算输入tensor元素的乘积,或者安照reduction_indices指定的轴进行求乘积
    tf.reduce_min(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    求tensor中最小值
    tf.reduce_max(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    求tensor中最大值
    tf.reduce_mean(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    求tensor中平均值
    tf.reduce_all(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    对tensor中各个元素求逻辑’与’
    # ‘x’ is 
    # [[True, True]
    # [False, False]]
    tf.reduce_all(x) ==> False
    tf.reduce_all(x, 0) ==> [False, False]
    tf.reduce_all(x, 1) ==> [True, False]
    tf.reduce_any(input_tensor, 
    reduction_indices=None, 
    keep_dims=False, name=None)
    对tensor中各个元素求逻辑’或’
    tf.accumulate_n(inputs, shape=None, 
    tensor_dtype=None, name=None)
    计算一系列tensor的和
    # tensor ‘a’ is [[1, 2], [3, 4]]
    # tensor b is [[5, 0], [0, 6]]
    tf.accumulate_n([a, b, a]) ==> [[7, 4], [6, 14]]
    tf.cumsum(x, axis=0, exclusive=False, 
    reverse=False, name=None)
    求累积和
    tf.cumsum([a, b, c]) ==> [a, a + b, a + b + c]
    tf.cumsum([a, b, c], exclusive=True) ==> [0, a, a + b]
    tf.cumsum([a, b, c], reverse=True) ==> [a + b + c, b + c, c]
    tf.cumsum([a, b, c], exclusive=True, reverse=True) ==> [b + c, c, 0]

    序列比较与索引提取(Sequence Comparison and Indexing)

     

    操作描述
    tf.argmin(input, dimension, name=None) 返回input最小值的索引index
    tf.argmax(input, dimension, name=None) 返回input最大值的索引index
    tf.listdiff(x, y, name=None) 返回x,y中不同值的索引
    tf.where(input, name=None) 返回bool型tensor中为True的位置
    # ‘input’ tensor is 
    #[[True, False]
    #[True, False]]
    # ‘input’ 有两个’True’,那么输出两个坐标值.
    # ‘input’的rank为2, 所以每个坐标为具有两个维度.
    where(input) ==>
    [[0, 0],
    [1, 0]]
    tf.unique(x, name=None) 返回一个元组tuple(y,idx),y为x的列表的唯一化数据列表,
    idx为x数据对应y元素的index
    # tensor ‘x’ is [1, 1, 2, 4, 4, 4, 7, 8, 8]
    y, idx = unique(x)
    y ==> [1, 2, 4, 7, 8]
    idx ==> [0, 0, 1, 2, 2, 2, 3, 4, 4]
    tf.invert_permutation(x, name=None) 置换x数据与索引的关系
    # tensor x is [3, 4, 0, 2, 1]
    invert_permutation(x) ==> [2, 4, 3, 0, 1]


    展开全文
  • pytorch生成随机数Tensor的方法汇总

    千次阅读 2018-09-10 15:34:13
    开始学习pytorch 看到rand randn 函数感觉奇怪 所以...torch.rand(*sizes, out=None) → Tensor 返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。 参数: sizes (in...

    开始学习pytorch 看到rand randn 函数感觉奇怪 所以找了下面文章区分

     

    https://zhuanlan.zhihu.com/p/31231210

     

    均匀分布

    torch.rand(*sizes, out=None) → Tensor

    返回一个张量,包含了从区间[0, 1)的均匀分布中抽取的一组随机数。张量的形状由参数sizes定义。

    参数:

    • sizes (int...) - 整数序列,定义了输出张量的形状
    • out (Tensor, optinal) - 结果张量

    例子:

    torch.rand(2, 3)
    0.0836 0.6151 0.6958
    0.6998 0.2560 0.0139
    [torch.FloatTensor of size 2x3]

     

    标准正态分布

    torch.randn(*sizes, out=None) → Tensor

    返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。

    参数:

    • sizes (int...) - 整数序列,定义了输出张量的形状
    • out (Tensor, optinal) - 结果张量

    例子:

    torch.randn(2, 3)
    0.5419 0.1594 -0.0413
    -2.7937 0.9534 0.4561
    [torch.FloatTensor of size 2x3]

     

    离散正态分布

    torch.normal(means, std, out=None) → → Tensor

    返回一个张量,包含了从指定均值means和标准差std的离散正态分布中抽取的一组随机数。

    标准差std是一个张量,包含每个输出元素相关的正态分布标准差。

    参数:

    • means (float, optional) - 均值
    • std (Tensor) - 标准差
    • out (Tensor) - 输出张量

    例子:

    torch.normal(mean=0.5, std=torch.arange(1, 6))
    -0.1505
    -1.2949
    -4.4880
    -0.5697
    -0.8996
    [torch.FloatTensor of size 5]

     

    线性间距向量

    torch.linspace(start, end, steps=100, out=None) → Tensor

    返回一个1维张量,包含在区间start和end上均匀间隔的step个点。

    输出张量的长度由steps决定。

    参数:

    • start (float) - 区间的起始点
    • end (float) - 区间的终点
    • steps (int) - 在start和end间生成的样本数
    • out (Tensor, optional) - 结果张量

    例子:

    torch.linspace(3, 10, steps=5)
    3.0000
    4.7500
    6.5000
    8.2500
    10.0000
    [torch.FloatTensor of size 5]
    展开全文
  • 获取指定范围内的随机整数

    千次阅读 2018-03-28 13:09:55
    通过使用Math.round() 和 Math.random()获取指定范围内的随机整数 /** * 获取指定范围内的随机整数 * @param { Number } n 开始数字 * @param { Number } m 结束数字 * @return { Number } 获取的随机数字 *...

    通过使用Math.round()Math.random()获取指定范围内的随机整数

    /**
     * 获取指定范围内的随机整数
     * @param  { Number } n 开始数字
     * @param  { Number } m 结束数字
     * @return { Number } 获取的随机数字
     */
    const random = function (n,m) {
        if(!Number(n))
            throw new Error(`${n} is not Number`)
        if(!Number(m))
            throw new Error(`${m} is not Number`)
        return Math.round(Math.random() * (m - n) + n)
    }
    展开全文
  • 1. 扩展Tensor维度  相信刚接触Pytorch的宝宝们,会遇到这样一个问题... 参数说明:self:输入的tensor数据,dim:要对哪个维度扩展就输入那个维度的整数,可以输入0,1,2…… 1.2Code 第一种方式,输入数据后直接加u
  • 关于tensor中数值类型

    2020-08-23 09:41:10
    X = torch.tensor([[1,2],[3,4]]) #查看X的类型 print(type(X)) #查看数据值的类型 print(X.dtype) #X的数据类型为torch.int64,因为输入的数据全为整数 Y1 = torch.ones(2,2) Y2 = torch.zeros(2,2) Y3 = torch....
  • import torch a = torch.rand(2, 2) a = a * 10 print(a) print('向下取整\n', torch.floor(a)) print('向上取整\n',torch.ceil(a)) print('四舍五入\n',torch.round(a)) print('裁切,只取整数部分\n',...tensor.
  • torch.tensor的乘法运算

    2021-07-03 15:32:50
    这里的tensor不涉及高维张量,即为一维张量或二维张量。 1、a*b 1.1、a和b同行同列 张量中各元素对应相乘。 a = torch.tensor([[1,2],[2,3],[3,4]]) b = torch.tensor([[1,2],[2,3],[3,4]]) print(a*b) 输出: ...
  • 如何将tensor转成int

    万次阅读 2019-05-26 10:51:14
    当然如果只是想将一个小数变成整数来索引list则不用这么转来转去, q = round(2.5) print(type(q)) print(a[:q]) 2 [1, 2] 但是如果是在sess返回之前转,得在之前的代码里使用 b = tf.to_int32(b)
  • pytorch tensor int型除法

    2020-08-05 16:47:00
    昨天晚上跑起来一个...accuracy对应的tensor出来是int型的,我用到了一个除法取平均。而pytorch里无论用 / or // 结果都是取整,,accuracy一直就没有。。 所以转换成float就没问题了,,低级bug,下不为例 ...
  • 1.定义各种数组 ...# 数组转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...
  • pytorch Tensor及其基本操作

    万次阅读 多人点赞 2019-04-04 09:05:53
    由于之前的草稿都没了,现在只有重写…. 我好痛苦本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有...本章导视图 Tensor attributes:在tensor attributes中有三个类,分别为torch.d...
  • tensor中数据类型的相互转换

    千次阅读 2020-05-06 18:54:30
    tensor中数据类型的相互转换Pytorch中的Tensor常用的类型转换函数 Pytorch中的Tensor常用的类型转换函数 tensor数据类型转换 在tensor的后面添加: .int()、.float()、.double()等. 同时也可以使用 .to(type) 进行...
  • pytorch不是一个完备的语言库...在cpu上tensor的数据类型:torch.FloatTensor 在GPU上tensor的数据类型: pytorch0.3版本以前,没有dimension为0的tensor,如对于loss=0.3,会返回[0.3] 但pytorch0.4以后,会返回0.3。
  • 详解Tensor用法

    2021-07-24 19:04:12
    Tensor的操作 张量的数据属性与 NumPy 数组类似,如下所示: 张量的操作主要包括张量的结构操作和张量的数学运算操作。 Tensor的结构操作包括:创建张量,查看属性,修改形状,指定设备,数据转换, 索引切片,...
  • PyTorch | (1)初识PyTorch PyTorch | (2)PyTorch 入门-张量 Tensor attributes: 在tensor attributes中有三个类,...其中, torch.dtype 是展示 torch.Tensor 数据类型的类,pytorch 有八个不同的数据类型...
  • tf.Tensor

    2019-08-07 20:58:20
    tf.Tensor https://github.com/tensorflow/docs/tree/r1.14/site/en/api_docs/python/tf site/en/api_docs/api_docs/python/tf/Tensor.md concrete ['kɒŋkriːt]:adj. 混凝土的,实在的,具体的,有形的 vi. 凝结...
  • Pytorch中Tensor数据类型转换: 1)Tensor的int、float数据类型转换: 在Tensor后加 .long(), .int(), .float(), .double()等即可 2)Tensor与numpy数据类型转换: Tensor -> Numpy 使用 data.numpy(),data为...
  • 文章目录基础操作 —— Tensor 的创建创建tensor时常用到的一些参数说明创建空的张量 torch.empty(...)例程创建随机数值的张量 torch.rand(...)参数说明例程创建全0的张量 torch.zeros(...)例程创建全1的张量 torch....
  • Pytorch Tensor 的创建&操作

    千次阅读 2020-08-21 21:09:56
    1、张量的创建 1.1 通过 torch.tensor 函数创建张量 通过 torch.tensor 不仅可以创建指定的张量,还可以用来进行转换。如果有预先的数据(list、ndarray),可以通过这个方法来进行转换。在 torch.tensor 函数中,...
  • 我们将在以下五个简单步骤中介绍与Tensorflow的Tensor中相关的所有主题: 第一步:张量的定义→什么是张量? 第二步:创建张量→创建张量对象的函数 第三步:张量对象的特征 第四步:张量操作→索引、基本张量...
  • tensor运算符

    2020-07-28 21:38:13
    所以前后行列向量维数必须匹配 当其他维度不匹配时,仍然使用Broadingcast进行维度匹配后运算 Power&sqrt .rsqrt():平方根的倒数 对数、指数 近似值 floor():向下取整 ceil():向上取整 trunc():截取整数位 frac...
  • pytorch创建tensor

    千次阅读 2019-10-21 15:55:18
    ** 一、import from numpy ** In [40]: a = np.array([2,3.3]) In [41]: a Out[41]: array([2.... In [42]: b = torch.from_numpy(a) ...Out[43]: tensor([2.0000, 3.3000], dtype=torch.float64) In...
  • Tensor与标量k做*乘法的结果是Tensor的每个元素乘以k(相当于把k复制成与lhs大小相同,元素全为k的Tensor)。 >>> a = torch.ones(3,4) >>> a tensor([[1., 1., 1., 1.], [1., 1., 1., 1.
  • pytorch: Tensor 常用操作

    万次阅读 多人点赞 2018-08-18 13:53:21
    pytorch: Tensor 常用操作
  • 解读Tensor张量的维数

    千次阅读 2019-10-04 21:55:02
    张量的形状以 [D0, D1, … Dn-1] 的形式表示,D0到Dn是任意的正整数。 如形状[3,4]表示第一维有3个元素,第二维有4个元素,[3,4]表示一个3行4列的矩阵。 在形状的中括号中有多少个数字,就代表...
  • 参考:Pytorch:生成随机数Tensor的方法汇总

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,105
精华内容 3,242
关键字:

整数tensor