学习笔记 | 深度学习开发—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日志并进行多维度分析。
相关文章
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
探索深度学习的奥秘:从理论到实践
【8月更文挑战第55天】本文将深入浅出地介绍深度学习的基本原理,并通过一个简单的代码示例,让读者快速掌握深度学习的基本概念和应用。我们将从神经网络的构建、训练和优化等方面展开讨论,帮助读者更好地理解深度学习的内涵和意义。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习的奥秘:从理论到实践
【9月更文挑战第24天】本文将深入探讨深度学习的理论基础,揭示其背后的数学原理和算法逻辑。我们将从感知机模型出发,逐步引入神经网络、反向传播算法等核心概念,并通过代码示例展示如何在Python环境中实现一个简单的深度学习模型。无论你是初学者还是有一定基础的开发者,都能从中获益。
|
8天前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
50 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
7天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
37 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
1天前
|
机器学习/深度学习 监控 TensorFlow
深度学习中的图像识别技术:从理论到实践
【9月更文挑战第26天】在本文中,我们将深入探讨深度学习在图像识别领域的应用。首先,我们将介绍深度学习的基本原理和关键技术,然后通过一个实际的案例——手写数字识别,展示如何利用Python和TensorFlow实现深度学习模型。最后,我们将讨论深度学习在图像识别领域的挑战和未来发展方向。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习:从理论到实践
【9月更文挑战第23天】深度学习,一个在科技界引起革命性变革的领域,已经渗透进我们生活的方方面面。本文将深入浅出地探讨深度学习的基本概念、关键技术以及应用实例,旨在为初学者提供一个全面而直观的理解框架。通过简化的语言和生动的比喻,我们将一起揭开深度学习神秘的面纱,并借助代码示例加深理解。无论你是科技爱好者还是AI领域的初学者,这篇文章都将是你理想的启航点。
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习入门:从理论到实践
【9月更文挑战第22天】本文将带你走进深度学习的世界,从基础的理论概念出发,逐步深入到实践应用。我们将探讨神经网络的工作原理,以及如何通过编程实现一个简单的深度学习模型。无论你是初学者还是有一定基础的学习者,都能在这篇文章中找到有价值的信息。让我们一起揭开深度学习的神秘面纱,探索这个充满无限可能的领域吧!
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习:从理论到实践
【9月更文挑战第23天】深度学习,作为人工智能领域的一颗璀璨明珠,已经引领了无数科技的突破与创新。本文将深入浅出地介绍深度学习的核心概念、基础理论以及实战应用,帮助读者构建起对这一前沿技术的整体认识。我们将一起探索神经网络的奥秘,了解如何训练高效的模型,并且通过代码示例具体展示深度学习的强大能力。无论你是科技爱好者,还是志在从事AI研究的学者,这篇文章都将成为你深度学习之旅的启航点。
20 4
|
8天前
|
机器学习/深度学习 人工智能 算法
深度学习中的卷积神经网络(CNN)入门与实践
【9月更文挑战第19天】在这篇文章中,我们将探索深度学习的一个重要分支——卷积神经网络(CNN)。从基础概念出发,逐步深入到CNN的工作原理和实际应用。文章旨在为初学者提供一个清晰的学习路径,并分享一些实用的编程技巧,帮助读者快速上手实践CNN项目。
|
3天前
|
机器学习/深度学习 缓存 NoSQL
深度学习在图像识别中的应用与挑战后端开发中的数据缓存策略
本文深入探讨了深度学习技术在图像识别领域的应用,包括卷积神经网络(CNN)的原理、常见模型如ResNet和VGG的介绍,以及这些模型在实际应用中的表现。同时,文章也讨论了数据增强、模型集成等改进性能的方法,并指出了当前面临的计算资源需求高、数据隐私等挑战。通过综合分析,本文旨在为深度学习在图像识别中的进一步研究和应用提供参考。 本文探讨了后端开发中数据缓存的重要性和实现方法,通过具体案例解析Redis在实际应用中的使用。首先介绍了缓存的基本概念及其在后端系统性能优化中的作用;接着详细讲解了Redis的常见数据类型和应用场景;最后通过一个实际项目展示了如何在Django框架中集成Redis,

热门文章

最新文章