学习笔记 | 深度学习开发—TensorFlow实践(基本运算)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 学习笔记 | 深度学习开发—TensorFlow实践(基本运算)

1. TensorFlow运行模型—会话


Session会话拥有并管理TensorFlow程序运行时的所有资源,当所有计算完成之后需要关闭会话帮助系统回收资源。


1. 会话模式1

sess=tf.Session()#创建会话
sess.run()#启动会话
sess.close()#关闭会话,释放资源
sess=tf.Session()
try:
sess.run()
except:
Print(“Exception”)
finally:
sess.close()

1. 指定默认的会话

sess=tf.Session()#创建会话
with sess as_default():
print(result.eval())

1. 交互环境下设置默认会话

tf.InteractiveSession使用这个函数会自动将生成的会话注册为默认会话
sess=tf.InteractiveSession()
print(result.eval())
sess.close()

常量与变量

常量constant

在运行过程中值不会改变的单元,在TensorFlow中无需进行初始化操作


创建语句:consrtant_name=tf.constant(value)


变量Variable

在运行过程中值会改变的单元,在TensorFlow中需进行初始化操作


Variable_name=tf.Variable(value,name)#V是大写


个别变量初始化:


init_op=name_variable.initializer()


sess.run(init_op)


所有变量初始化:


init_op=tf.global_variables_initializer()


sess.run(init_op)

变量赋值

TensorFlow中的变量定义后,一般无需人工赋值,系统会根据算法模型,训练优化过程中自动调整变量对应的数值。特殊情况下需要人工更新,可用变量赋值语句,变量更新语句:


update_op=tf.assign(variable_to_be_update,new_value)

import  tensorflow as tf#导入tensorflow模型
tf.reset_default_graph()#清楚默认图和不断增加的节点
#通过变量赋值输出1.2.3.……10
value=tf.Variable(0,name="value")
one=tf.constant(1)
new_value=tf.add(value,one)
update_value=tf.assign(value,new_value)
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for _ in range(10):
        sess.run(update_value)
        print(sess.run(value))
logdir='D:/pycharm project/logs'
#生成一个写日志的writer,并将当前的tensorflow计算图写入日志
writer=tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()

image.png思考:如何利用tensorflow变量赋值计算1+2+3……+10?

import  tensorflow as tf#导入tensorflow模型
tf.reset_default_graph()#清楚默认图和不断增加的节点
#通过变量赋值输出1+2+3+……10
value=tf.Variable(0,name="value")
sums=tf.Variable(0,name="sums")
one=tf.constant(1)
new_value=tf.add(value,one)
update_value = tf.assign(value, new_value)
new_sum = tf.add(sums,value)
update_sum = tf.assign(sums,new_sum)
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for _ in range(10):
        sess.run(update_value)
        sess.run(update_sum)
    print(sess.run(sums))
logdir='D:/pycharm project/logs'
#生成一个写日志的writer,并将当前的tensorflow计算图写入日志
writer=tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()

占位符placeholder

TensorFlow中的Variable变量类型,在定义时需要初始化,但有些变量定义时并不知道其数值,只有当真正开始运行程序时,才有外部输入,比如训练数据时,这个时候需要占位符。tf.placeholder占位符,是tensorflow中特有的一种数据结构,类似动态变量,函数的参数,或者c语言或者python语言中格式化输出时的“%”占位符。


tf.placeholder(dtype,shape=None,name=None)



x=tf.placeholder(tf.float32,[2,3],name=”x”)


Feed提交数据

如果构建了一个包含placeholder操作的计算图,当在session中调用run方法时,placeholder占用的变量必须通过feed_dict参数传递进去,否则报错。

import tensorflow as tf
a=tf.placeholder(tf.float32,name="a")
b=tf.placeholder(tf.float32,name="b")
c=tf.multiply(a,b,name="c")
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    #通过feed_dict的参数传值,按字典格式
    result=sess.run(c,feed_dict={a:8.0,b:3.5})
    print(result)

多个操作可以通过一次feed完成执行。

import tensorflow as tf
a=tf.placeholder(tf.float32,name="a")
b=tf.placeholder(tf.float32,name="b")
c=tf.multiply(a,b,name="c")
d=tf.multiply(a,b,name="d")
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    #通过feed_dict的参数传值,按字典格式
    result=sess.run([c,d],feed_dict={a:[8.0,2.0,3.5],b:[1.5,2.0,4.0]})
    print(result)
    #取结果中第一个
    print(result[0])

1. feed和fetch

一次返回多个值分别赋给多个变量

import tensorflow as tf
a=tf.placeholder(tf.float32,name="a")
b=tf.placeholder(tf.float32,name="b")
c=tf.multiply(a,b,name="c")
d=tf.multiply(a,b,name="d")
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    #通过feed_dict的参数传值,按字典格式
    rc,rd=sess.run([c,d],feed_dict={a:[8.0,2.0,3.5],b:[1.5,2.0,4.0]})
    print("c=",rc,"d=",rd)
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
7天前
|
机器学习/深度学习 数据采集 自然语言处理
深入浅出深度学习:从理论到实践
【10月更文挑战第38天】本文旨在通过浅显易懂的语言和直观的代码示例,带领读者探索深度学习的奥秘。我们将从深度学习的基本概念出发,逐步深入到模型构建、训练以及应用实例,让初学者也能轻松入门。文章不仅介绍了深度学习的原理,还提供了实战操作指南,帮助读者在实践中加深理解。无论你是编程新手还是有一定基础的学习者,都能在这篇文章中找到有价值的内容。让我们一起开启深度学习之旅吧!
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
30 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
7天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
23 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
7天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
36 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
9天前
|
机器学习/深度学习 自然语言处理 语音技术
深度学习的奇妙之旅:从理论到实践
【10月更文挑战第36天】在本文中,我们将一起探索深度学习的神秘世界。我们将首先了解深度学习的基本概念和原理,然后通过一个简单的Python代码示例,学习如何使用深度学习库Keras进行图像分类。无论你是深度学习的初学者,还是有一定基础的学习者,都可以从这篇文章中获得新的知识和启示。
|
14天前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
34 7
|
22天前
|
机器学习/深度学习 数据采集 人工智能
深度学习的魔法:从理论到实践的探索####
【10月更文挑战第22天】 本文深入探讨了深度学习这一现代人工智能领域的璀璨明珠,通过生动实例与通俗语言,揭示了其背后的原理、发展历程及在多个行业的应用潜力。文章首先概述了深度学习的基本概念,随后详细解析了神经网络的核心构成,并探讨了当前面临的挑战与未来趋势。最终,通过实际案例展示了深度学习如何改变世界,为读者呈现一幅技术革新引领未来的画卷。 ####
25 3
|
23天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
67 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型