TensorFlow之张量思维训练

1.构建基本数据流图

2.修改为张量描述图

import tensorflow as tf

a= tf.constants([5,3],name="imput_a")

b= tf.reduce_prod(a,,name="prod_b")

c= tf.reduce_sum(a,name="sum_c")

d= tf.add(c,d,name="add_d")

数学实例Python 例子
0纯量 (只有大小)s = 483
1向量(大小和方向)v = [1.1, 2.2, 3.3]
2矩阵(数据表)m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
33阶张量 (数据立体)t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
nn阶 (自己想想看)....

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。

    NumPy数组在数值运算方面的效率优于Python提供的list容器。使用NumPy可以在代码中省去很多循环语句,因此其代码比等价的Python代码更为简洁。

1.reshape 不改变数据的条件下修改形状
2.flat 数组上的一维迭代器
3.flatten 返回折叠为一维的数组副本
4.ravel 返回连续的展开数组

 

创建ndarray

创建数组最简单的方法就是使用array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。

array函数创建数组

import numpy as np
ndarray1 = np.array([1, 2, 3, 4])
ndarray2 = np.array(list('abcdefg'))
ndarray3 = np.array([[11, 22, 33, 44], [10, 20, 30, 40]])

zeros和zeros_like创建数组

用于创建数组,数组元素默认值是0. 注意:zeros_linke函数只是根据传入的ndarray数组的shape来创建所有元素为0的数组,并不是拷贝源数组中的数据.

    ndarray4 = np.zeros(10)
    ndarray5 = np.zeros((3, 3))
    ndarray6 = np.zeros_like(ndarray5)  # 按照 ndarray5 的shape创建数组
    # 打印数组元素类型
    print("以下为数组类型:")
    print('ndarray4:', type(ndarray4))
    print('ndarray5:', type(ndarray5))
    print('ndarray6:', type(ndarray6))
    print("-------------")
    print("以下为数组元素类型:")
    print('ndarray4:', ndarray4.dtype)
    print('ndarray5:', ndarray5.dtype)
    print('ndarray6:', ndarray6.dtype)
    print("-------------")
    print("以下为数组形状:")
    print('ndarray4:', ndarray4.shape)
    print('ndarray5:', ndarray5.shape)
    print('ndarray6:', ndarray6.shape)

ones和ones_like创建数组

用于创建所有元素都为1的数组.ones_like用法同zeros_like用法

创建数组,元素默认值是0
ndarray7 = np.ones(10)
ndarray8 = np.ones((3, 3))
修改元素的值
ndarray8[0][1] = 999
ndarray9 = np.ones_like(ndarray5)  # 按照 ndarray5 的shape创建数组

empty和empty_like创建数组

用于创建空数组,空数据中的值并不为0,而是未初始化的随机值.

    ndarray10 = np.empty(5)
    ndarray11 = np.empty((2, 3))
    ndarray12 = np.empty_like(ndarray11)

arange创建数组

arange函数是python内置函数range函数的数组版本.

ndarray13 = np.arange(10)                  #产生0-9共10个元素
ndarray14 = np.arange(10, 20)              #产生从10-19共10个元素
ndarray15 = np.arange(10, 20, 2)           #产生10 12 14 16 18, 2为step 间隔为2
print('ndarray14的形状:', ndarray14.shape)  #ndarray15的长度
ndarray14.reshape((2, 5))                  #将其形状改变为(2, 5) 分2部分 每份5个

eys创建对角矩阵数组

该函数用于创建一个N*N的矩阵,对角线为1,其余为0.

ndarray16 = np.eye(5)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值