专栏首页算法与编程之美人工智能|Tensorflow-2.0学习笔记:基础操作篇一

人工智能|Tensorflow-2.0学习笔记:基础操作篇一

数据类型与tensor创建

一、数据类型

  1. 1. TF中的数据表达

tensor是tensorflow上数据的载体

what's Tensor

标量 scalar : 1.1

向量 vector :[1.1],[1.1,2.2,...]

矩阵 matrix :[[0.7,1.5],[2.1,3],[5,6]]

维度大于2的矩阵 tensor : rank>2

从工程上来讲所有数据都可以叫做tensor

2.TF中的数据类型

int,float,double

bool

string

创建一个常量or创建一个标量tensor

a=tf.constant(1)#默认为32位 b=tf.constant(2.,dtype=tf.double)#创建浮点型tensor,并指定为双精度 c=tf.constant([True,False])#创建布尔型 d=tf.constant('hello,word')#创建字符串型

tensor常用属性

指定tensor在哪个设备上运行,gpu or cpu

with tf.device("cpu"): a=tf.constant([1]) with tf.device('gpu'): b=tf.range(4)

查看tensor在哪个设备上运行

a.device b.device

tensor的运行设备转移

aa=a.gpu() bb=b.cpu()

将tensor转换成numpy

b.numpy()

查看维度

b.ndim#返回维度 tf.rank(b)#或者这个,还能查看shape和dtype b.shape()#与python中的shape功能相似

判断某个数据是不是tensor,以下两种方式

isinstance(a,tf.Tensor) tf.is_tensor(b)

数据类型转换

#查看数据类型 a.dtype,b.dtype #判断数据类型 a.dtype=tf.float32 #数据类型转换 a=np.arange(5)#numpy生成的数据都默认为64位 aa=tf.convert_to_tensor(a)#转换为tensor aa=tf.convert_to_tensor(a,dtype=tf.int32)#转换为tensor,并改为32位 tf.cast(aa,dtype=tf.float32)#将aa转换为浮点型32位 b=tf.constant([0,1]) tf.cast(b,dtype=tf.bool)#整型0、1可以和布尔类型相互转换

Variable 变量,可更改优化的数据。在tensorflow中Variable自带可求导特性

a=tf.range(5) b=tf.Variable(a) #isinstance存在一些问题,一般建议用tf.is_tensor isinstance(b,tf.Tensor)#False tf.is_tensor(b)#True #返回tensor中的具体数据 a.numpy()

二、创建tensor

1.formnumpy,list 从numpy和python的list中经转换得到

2.zeros,ones np.zeros、np.ones,tf.zeros、tf.ones

3.fill 随意用某个数填充

4.random 随机化的初始化

5.constant 标量

6.Application

#直接用List,要求list中的数据都可以转换为可计算的数据 tf.convert_to_tensor([1,2]) tf.convert_to_tensor([[1],[2.0]]) #ones,zeros接受的数据是shape,[2,3]指生成二行三列的矩阵 tf.convert_to_tensor(np.ones[2,3]) tf.convert_to_tensor(np.zeros[2,3]) #与上方功能相同 tf.ones([2,3]) tf.zeros([2,3]) tf.zeros_like(a)#生成与a的shape相同的全0矩阵 #等同于 tf.zeros(a.shape) tf.fill([2,2],9)#生成2行2列的tensor,并用9填充

Random初始化

#正态分布初始化 tf.random.normal([2,2],mean=1,stddey=1)#生成2行2列的tensor,其中的每个值都通过正态分布得出 #mean是均值、stddey是方差。不填默认0、1,标准正态分布 #截断正态分布,去除正态分布中左右两侧较少的分布区域值,一般来说比直接的正态分布好 tf.random.truncated_normal([2,2],mean=0,stddey=1) #均匀分布 tf.random.uniform([2,2],minval=0,maxval=1)#从0到1之间均匀采样

随机打散

假设现在a中有48张照片,28*28,3通道的,用tensor表示为[48,28,28,3].。现在要将这些照片顺序打散。

index=tf.range(48)#生成对应索引,每个索引对应一张照片 idx=tf.random.shuffle(index)#将index随机打乱,但是图片的顺序还没发生变化 a=tf.gather(a,index)#用gather函数可以让照片与被打乱的index一一对应,这样就实现了随机打散

END

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:马原涛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 人工智能|TensorFlow前向传播实例

    举一个mnist手写数据集的识别的例子,这个数据集在机器学习中是非常经典的数据集,由60k个训练样本和10k个测试样本组成,每个样本都是一张28*28像素的灰度...

    算法与编程之美
  • 谈一谈|在win10家庭版上用虚拟机安装docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0协议开源。

    算法与编程之美
  • python|求方程X2+Y2=N的全部正整数解

    该问题的原题描述为:本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。给定的N<=10000,如果本题要求对任意给定的正整数N,求方程X2+Y2...

    算法与编程之美
  • 深度学习_1_神经网络_3_验证码识别

    ​ N ------>[0.01,0.02,0.03.......] 概率 N------->[0,0,0,0,1.......] one-hot编码

    Dean0731
  • tensorflow入门:Logistic Regression

    g(z)=11+e−zg(z) = \frac{1}{1+e^{-z}}g(z)=1+e−z1​

    Steve Wang
  • 【神经网络篇】--基于数据集cifa10的经典模型实例

    最终,在cifar-10数据集上,通过一个短时间小迭代的训练,可以达到大致73%的准确率,持续增加max_steps,可以期望准确率逐渐增加 如果max_ste...

    LhWorld哥陪你聊算法
  • 【TensorFlow】理解 Estimators 和 Datasets

    Google 在 2017 年 9 月 12 号的博文 Introduction to TensorFlow Datasets and Estimators 中...

    Alan Lee
  • 如何用微信监管你的TF训练?

    用户1737318
  • 【tensorflow2.0】张量的结构操作

    张量数学运算主要有:标量运算,向量运算,矩阵运算。另外我们会介绍张量运算的广播机制。

    绝命生
  • 【tensorflow2.0】中阶api--模型、损失函数、优化器、数据管道、特征列等

    TensorFlow的中阶API主要包括各种模型层,损失函数,优化器,数据管道,特征列等等。

    绝命生

扫码关注云+社区

领取腾讯云代金券