tensorflow用法,tensorflow支持的语言

  tensorflow用法,tensorflow支持的语言

  会话一个运行张量流运算的类,会话开启的两种方式:tf .会话():用于完整的程序中tf .InteractiveSession():用于交互上下文中的张量流,例如:shellinit(target= ,graph=None,config=None):初始化会话图表:默认情况下,会话绑定默认图目标:访问远程设备,指定grpc://网址配置:允许指定一个tf .配置协议控制会话行为,如:配置协议协议用于打印设备#所有的op、ses、张量都是在同一张图中,即内存地址相同

  定义graph_demo():

  v_data1=tf。常数([1,2,3])

  v_data2=tf.constant([3,2,1])

  v_data3=tf.add(v_data1,v_data2)

  default _ graph=TF获取默认图形()

  打印(默认图形)

  打印(v_data2.graph)

  用tf .会话(config=tf .配置协议(allow _ soft _ placement=True,log _ device _ placement=True))作为会话:

  打印(sess.graph)运行:提取:单一的操作,或者列表、元组(不属于张量流类型的不行)feed_dict:参数允许调用覆盖图中的值,进行赋值与tf.placeholder搭配使用,检查值的形状与占位符号是否兼容def place_constant():

  #支架占位类型

  a=tf.placeholder(tf.int32)

  b=tf.placeholder(tf.int32)

  c=tf.add(a,b)

  用tf .会话()作为会话:

  #使用奔跑中的饲料_字典进行传值

  print(sess.run(c,feed_dict={a:1,b:2}))

  查看张量的值,只能在会话中查看sess.run().eval()

  张量张量流的张量就是一个n维数组类型:数据类型形状:形状张量类型张量的阶创建张量的时候,如果不指定类型

  默认tf.float32

  整型:tf.int32

  浮点型:tf.float32张量的变换类型变换def Matrix_cast():

  矩阵1=TF。random _ normal(形状=[9,9],平均值=1.8,标准差=5,种子=12)

  #查看类型

  打印(matrix1.dtype)

  #tf.to.转换指定到.类型

  matrix2=tf.to_int64(matrix1)

  打印(矩阵2)

  #转换成想要的类型,演员阵容不会修改原本的张量,返回修改内之后的张量

  matrix3=tf.cast(matrix2,dtype=tf.float64)

  打印(矩阵3)

  用tf .会话()作为会话:

  打印(sess.run(matrix2))形状修改

  静态形状(不能跨阶数)—-一开始创建的张量的形状,确定了维数就不能改变维数了一维到一维、二维到二维.修改静态形状,只有形状没有固定下来的情况下,才能改def place _ mattrix():

  #占位,未确定形状

  a=TF。占位符(dtype=TF。浮动32,形状=[无,无])

  b=TF。占位符(dttype=TF。float 32,shape=[无,10])

  c=TF。占位符(dttype=TF。浮点32,形状=[8,8])

  #填充占位

  答。集合形状([9,9])

  集合形状([9,10])

  打印(一份)

  打印(二)

  打印(三)动态形状修改(可以跨阶数),只会返回修改之后的张量,不会修改原始的tensordef d3_place_matrix():

  #占位,未确定形状

  a=TF。占位符(dtype=TF。浮动32,形状=[无,无])

  b=TF。占位符(dttype=TF。float 32,shape=[无,10])

  c=TF。占位符(dtype=TF。float 32,shape=[7,8]),

  #动态修改,可更改阶数,不能改变数量,但是不能修改元素的数量,列入c的[7,8]可以[8,7,1]不能[10,5,1]

  a _ reshaped=TF。shape(a,shape=([1,2,3])

  c _ reshaped=TF。shape(c,shape=([8,7,1])

  打印(一份)

  打印(二)

  打印(三)

  打印(形状改变)

  打印(c _整形)变量过强;管理员变量的特点:存储持久化可修改值可指定被训练创建变量极好的变量_sc():

  #tf。变量_作用域修改命名空间使结构更加清晰

  用TF。变量范围( my _ scopr 1 ):

  a=tf .变量(初始值=88)

  b=tf .变量(初始值=99)

  用TF。变量范围(我的范围2 ):

  c=tf.add(a,b)

  打印(一份)

  打印(二)

  打印(三)

  用tf .会话()作为会话:

  #初始化全局变量

  sess。运行(TF。global _ variables _ initializer()

  打印(sess.run(c))基础APItf.app

  相当于为张量流脚本提供主要的函数入口tf。图像

  张量流的图像处理,主要颜色变换,变形和解码tf.gfile

  提供文件操作函数tf。摘要

  生成张量板可用的统计日志,目前四种类型:

  音频、图像、直方图、scalartf.python_io

  读取TFRecords文件tf。火车

  提供一个训练器,结合tf.nn,实现网络tf.nn的优化计算。

  提供神经网络的底层功能和核心模块。

  它包括各层的功能,如卷积层、池层和其他高级APItf.keras。

  深度学习库tf.layers

  用更高的概念对模型进行分层,类似于kerastf.contrib

  它可以提供计算图中的网络层、正则化、汇总运算,是构建计算图的高级运算tf.estimator。

  实现几个简单的分类器和回归器。这里的DNN网只是全连通网,并没有2020年10月16日的总结(完整),比如卷积:基本完成。之前因为先学了Tensorflow2.x,一开始不能直接理解底层原理,所以很难。现在反过来把底层学的更清楚了,知道多位矩阵的各种运算。张量是

  重点:矩阵运算。

  难点:理解图像的像素矩阵参与运算的思想案例:实现线性回归模型的训练案例确定随机点有100个,只有一个特征值数据有自己的分布y=0.8*x 0.7。回顾线性回归原理并建立模型。

  Y=w1n1.建立一个损失函数

  均值方差优化损失

  梯度下降训练分析准备

  准备数据

  28个样本

  x特征形状(100,1)

  y值形状(100,1)

  假设x和y之间的关系满足

  y=ax b

  a0.8 b0.7

  在线分析

  (100, 1)*(1, 1)=(100,1)

  Y _ predict=x * weights (1,1)basis(1,1)建筑模型

  Y _ predict=TF。matmul (x,权重)基于施工损失

  误差=TF . reduce _ mean(TF . square(y _ predict-y _ value))优化损失

  optimizer=TF . train . gradiendescentoptimizer(learning _ rate=0.01)。最小化(错误)代码将导入张量流实现为tf。

  导入操作系统

  OS . environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2

  生成数据

  def随机数据():

  #生成数据

  x=tf.random_normal(shape=[100,1])

  y_value=tf.matmul(x,[[0.8]]) 0.7

  返回x,y值

  建立一个模型并处理它。

  def pand_data_gets():

  #模型准备,k,b是随机值

  重量=tf。变量(初始值=tf.random_normal(shape=[1,1]))

  bais=tf。变量(初始值=tf.random_normal(shape=[1,1]))

  用tf。会话()作为会话:

  sess . run(TF . global _ variables _ initializer())

  y _ predict=TF . mat mul(sess . run(random _ data())[0],weight) bais

  #构建损失函数,均方误差

  error=TF . reduce _ mean(TF . square(y _ predict-sess . run(random _ data())[1])

  #优化损耗最小化(误差)使损耗最小化,GradientDescentOptimizer的梯度减小。

  optimizer=TF . train . gradientdescentoptimizer(learning _ rate=0.001)。最小化(误差)

  #检查初始化值

  Print(预训练模型参数为:weight %f,offset %f,loss% f% (weight.eval(),bais.eval(),error.eval()))

  对于范围内的I(1000):

  #开始训练

  sess.run(优化器)

  Print(训练后模型参数为:weight %f,offset %f,loss% f% (weight.eval(),bais.eval(),error.eval()))

  if __name__==__main__ :

  pand_data_gets()的学习率设置、步数设置、梯度爆发

  在极端情况下,权重值变得非常大,这导致重新设计NaN值解、调整学习率、使用梯度截断以及使用激活函数变量观察可训练设置。

  的变量tarinable设置为False,这意味着不允许训练。默认值为True。增加tensorBoard变量显示集合变量tf.summary.scalar (name= ,Tensor)收集损失值tf.summary.histogram(name= ,Tensorf)收集变量参数tf.summary.image(name= )高维,Tensor)收集输入图片的张量显示图片合并变量写入事件文件merged=tf.summary.merge_all()运行merge:sess . sun(merrged)Add file writer . Add _ summary(path, I)指示次数的值的示例:# # # # # # # # # # # # # # # # # # # # # # # # # # # # #

  #重要提示:请确保将要保存在作业中的文件保存在结果文件夹中。

  #重要提示:请确保您的文件保存在“结果”文件夹中

  #在你的工作中

  ###############################################################################

  将张量流作为tf导入

  导入操作系统

  OS . environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2

  生成数据

  def随机数据():

  #生成数据

  x=tf.random_normal(shape=[100,1])

  y_value=tf.matmul(x,[[0.8]]) 0.7

  返回x,y值

  建立模型并处理

  def pand_data_gets():

  #模型准备,k,b均为随机值

  重量=tf .变量(初始值=tf.random_normal(shape=[1,1]))

  bais=tf .变量(初始值=tf.random_normal(shape=[1,1]))

  用tf .会话()作为会话:

  sess。运行(TF。global _ variables _ initializer()

  #创建事件文件

  file _ writer=TF。总结。文件编写器(./results/tb_results/model3 ,graph=sess.graph)

  y _ predict=TF。mat mul(sess。run(random _ data())[0],weight)bass

  #构建损失函数,均方误差

  误差=TF。reduce _均值(TF。square(y _ predict-sess。run(random _ data())[1]),name=error )

  #收集变量

  tf.summary.scalar(error ,错误)

  tf.summary.histogram(weight ,权重)

  tf.summary.histogram(bais ,bais)

  #合并变量

  merged=tf.summary.merge_all()

  #优化损失最小化(误差)最小化损失,梯度下降优化器梯度下降

  优化器=TF。火车。gradienddescentoptimizer(learning _ rate=0.001).最小化(误差)

  #查看初始化后的值

  打印(训练前模型参数为:权重%f,偏置%f,损失值% f"%(重量。eval()、bais.eval()、error.eval()))

  对于范围内的我(1000):

  #开始训练

  sess.run(优化器)

  #合并变量操作

  summaries=sess.run(合并)

  #将每次迭代后的时间写入事件文件

  文件_编写器.添加_摘要(摘要,我)

  打印(训练后模型参数为:权重%f,偏置%f,损失值% f"%(重量。eval()、bais.eval()、error.eval()))

  if __name__==__main__ :

  pand_data_gets()添加命名空间使代码结构更加清晰,张量板图结构清楚用TF。variable _ scope( lr _ modle )模型保存与加载tf.train.Saver(var_list=None,max_to_keep=5)var_list:指定要保存和还原的变量,它可以作为一个词典和一个列表传递最大保留时间:指示保留的检查点的最大数量,默认为5保存与加载的例子:将张量流作为法国南部(French Southern Territories的缩写)导入

  导入操作系统

  OS。environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2

  生成数据

  极好的随机数据():

  #生成数据

  x=tf.random_normal(shape=[100,1])

  y_value=tf.matmul(x,[[0.8]]) 0.7

  返回x,y值

  建立模型并处理

  def pand_data_gets():

  #模型准备,k,b均为随机值

  重量=tf .变量(初始值=tf.random_normal(shape=[1,1]))

  bais=tf .变量(初始值=tf.random_normal(shape=[1,1]))

  saver=TF。火车。saver(max _ to _ keep=3)

  用tf .会话()作为会话:

  sess。运行(TF。global _ variables _ initializer()

  #创建事件文件

  file _ writer=TF。总结。文件编写器(./results/tb_results/model2 ,graph=sess.graph)

  y _ predict=TF。mat mul(sess。run(random _ data())[0],weight)bass

  #构建损失函数,均方误差

  误差=TF。reduce _均值(TF。square(y _ predict-sess。run(random _ data())[1])

  #收集变量

  tf.summary.scalar(error ,错误)

  tf.summary.histogram(weight ,权重)

  tf.summary.histogram(bais ,bais)

  #合并变量

  merged=tf.summary.merge_all()

  #优化损失最小化(误差)最小化损失,梯度下降优化器梯度下降

  优化器=TF。火车。gradienddescentoptimizer(learning _ rate=0.001).最小化(误差)

  #查看初始化后的值

  打印(训练前模型参数为:权重%f,偏置%f,损失值% f"%(重量。eval()、bais.eval()、error.eval()))

  #对于范围内的我(1000):

  # #开始训练

  # sess.run(优化器)

  # #合并变量操作

  # summary=sess.run(合并)

  # #将每次迭代后的时间写入事件文件

  #文件编写器。add _ summary(summary,I)

  #如果i==0:

  # saver.save(sess, 0 ./tmp/my_linear.ckpt )

  如果os.path.exists(./tmp/my_linear.ckpk ):

  saver.restore(sess ./tmp/my_linear.ckpt )

  打印(训练后模型参数为:权重%f,偏置%f,损失值% f"%(重量。eval()、bais.eval()、error.eval()))

  if __name__==__main__ :

  pand_data_gets()命令行参数使用tf.app.FLAGS,这是从命令行接收的参数,用于指定tf.app.flags的配置。它可以调用程序前面定义的特定flag_name,通过tf.app.run()启动main(argv)函数。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: