Tensorflow教程

Tensorflow教程,第1张

前言

1、TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库;

2、TensorFlow 允许将深度神经网络的计算部署到任意数量的 CPU 或 GPU 的服务器、PC 或移动设备上,且只利用一个 TensorFlow API。


3、那 TensorFlow 与其他深度学习库,如 Torch、Theano、Caffe 和 MxNet的区别在哪里呢?

包括 TensorFlow 在内的大多数深度学习库能够自动求导(自动求导 (Automatic Differentiation, AD) - 秦时明月0515 - 博客园)、开源、支持多种 CPU/GPU、拥有预训练模型,并支持常用的NN架构,如递归神经网络(RNN)、卷积神经网络(CNN)和深度置信网络(DBN)。


 

TensorFlow程序
import tensorflow as tf
message = tf.constant('Hello World!')
with tf.session() as sess:
print(sess.run(message).decode())

tf.session()用法:TensorFlow:tf.Session函数_w3cschool

tf.constant()用法:tf.constant(常量)_bestrivern的博客-CSDN博客_tf.constant

Python decode() 方法:Python decode()方法 | 菜鸟教程

 

TensorFlow 程序解读分析

前面的代码分为以下三个主要部分:

1、 import 模块包含代码将使用的所有库,在目前的代码中只使用 TensorFlow,import tensorflow as tf 则允许 Python 访问 TensorFlow 所有的类、方法和符号。


2、包含图形定义部分...创建想要的计算图。


在本例中计算图只有一个节点,tensor 常量消息由字符串“Welcome to the exciting world of Deep Neural Networks”构成。


3、是通过会话执行计算图,这部分使用 with 关键字创建了会话,最后在会话中执行以上计算图。


 

TensorFlow程序结构(深度剖析)

TensorFlow程序结构(深度剖析)

 

TensorFlow常量、变量和占位符详解

TensorFlow常量、变量和占位符详解

1、tensorflow常量

#Tensorflow常量举例:
zero_t=tf.zeros([2,3],tf.int32)#创立一个2*3的所有元素都是0的张量
ones_t = tf.ones([2,3],tf.int32)#全部元素都是1

TensorFlow 允许创建具有不同分布的随机张量,也可以随机裁剪张量为指定的大小。


tensorflow参数—seed:如果设置了seed的值,则每次执行程序所产生的随机数或者随机序列均相等,即都为同一个随机数或者随机序列;如果没有设置seed参数的取值,那么每次执行程序所产生的随机数或者随机序列均不等。


浅析tensorflow的种子(seed)参数_Legolas~的博客-CSDN博客_tensorflow随机数种子

tensorflow参数—mean:均值(默认为0),stddev:标准差(默认为1.0)。


 

2、tensorflow变量

#两者将被初始化为形状为 [50,50] 的随机均匀分布,最小值=0,最大值=10
rand=tf.random_uniform([50,50],0,10,seed=0)
rand_a=tf.Variable(rand)
rand_b=tf.Variable(rand)

#定义权重和偏置
weight=tf.Variable(tf.random_normal([100,100],stddev=2))
bias=tf.Variable(tf.zeros[100],name='biases')

#法一:在计算图的定义中通过声明初始化 *** 作对象来实现
sess=tf.session()
init_op=tf.globle_variables_initializer()
sess.run(init_op)

#法二:每个变量也可以在运行图中单独使用 tf.Variable.initializer 来初始化
with tf.session() as sess:
 sess.run(bias.initializer)


注意:

变量通常在神经网络中表示权重和偏置。


变量的定义将指定变量如何被初始化,但必须(在计算或者运行中)显式初始化所有的声明变量


所有常量、变量和占位符在代码的计算图部分中定义。


如果在定义部分使用 print 语句,只会得到有关张量类型的信息,而不是它的值。


(要用session会话对需要提取的张量显式使用运行命令)

 

3、TensorFlow 占位符——它们用于将数据提供给计算图

#在这里,为 x 定义一个占位符并计算 y=2*x,使用 feed_dict 输入一个随机的 4×5 矩阵:
x=tf.placeholder("float")
y=x*2
data=tf.random_uniform([4,5],10)
with session() as sess:
 x_data=sess.run(data)
 print(sess.run(y,feed_dict={x:x_data})

补充:很多时候需要大规模的常量张量对象,在这种情况下,为了优化内存,最好将它们声明为一个可训练标志设置为 False 的变量,如

t_large=tf.Variable(large_array,trainable=False)

 

TensorFlow矩阵基本 *** 作及其实现
import tensorflow as tf
#开始一个交互式对话
sess=tf.InteractiveSession()

#创建一个5*5的对角为1单位矩阵
matrix=tf.eye(5)
print(matrix.eval())

#创建一个10*10的对角为1单位矩阵变量
Matrix=tf.Variable(tf.eye(10))
Matrix.initilizer.run()
print(Matrix.eval())

#创建一个5*10的随机矩阵
matrix_t=tf.Variable(tf.random_normal([5,10]))
matrix_t.initilizer.run()

#两个矩阵相乘
product=tf.matmul(matrix_t,Matrix)
print(product.eval())

#类型转换
Matrix_t=tf.Variable(tf.random_uniform([5,10],0,2,dtype=tf.int32))
Matrix_t.initlizer.run()
print(Matrix_t.eval())
Matrix_tnew=tf.cast(Matrix_t,dtype=tf.float32)

#两矩阵相加
sum=tf.add(product,Matrix_tnew)
print("sum=",sum.eval())

#其他情况
a=tf.Variable(tf.random_normal([4,5],stddev=2))
b=tf.Variable(tf.random_normal([4,5],stddev=2))
A=a*b
B=tf.scalar_mul(2,A)
C=tf.div(a,b)
D=tf.mod(a,b)
init_op=tf.globle_variables_initilizer()
with tf.session() as sess
 sess.run(init_op)
 write=tf.summary.FileWrite('graphs',sess.graph)
 A_,B_,C_,D_=sess.run([A,B,C,D])
 print("A=",A_,"\nB=",B_)
 writer.close() #需要close才能保存计算图

tf.InteractiveSession()与tf.Session()的区别_XerCis的博客-CSDN博客

Tensorflow.js tf.eye()用法及代码示例 - 纯净天空

tf.random_uniform()_永久的悔的博客-CSDN博客_tf.random_uniform

tf.multiply()、tf.matmul()、tf.scalar_mul()函数介绍和示例_痴迷、淡然~的博客-CSDN博客

TensorFlow四则运算之除法:tf.divide()_凝眸伏笔的博客-CSDN博客_tf.divide

tf.summary.FileWriter用法_小小码农JACK的博客-CSDN博客_tf.summary.filewriter

如果在整数张量之间进行除法,最好使用 tf.truediv(a,b),因为它首先将整数张量转换为浮点类,然后再执行按位相除。


 

TensorFlow TensorBoard可视化数据流图

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/577959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存