深度学习(五)--常量与变量

简介: 深度学习(五)--常量与变量

概念:


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


定义常量:


constant_name = tf.constant(value)

常量的运算代码示例:


import tensorflow as tf
# 一个简单的计算图
node1 = tf.constant(3.0, tf.float32, name="node1")
node2 = tf.constant(4.0, tf.float32, name="node1")
node3 = tf.add(node1, node2)
# 可以通过创建会话session来执行数据操作
sess = tf.Session()
print("node3的值:",sess.run(node3)


在这里进行的就是两个常量(node1, node2)的加法运算。

常量很简单,接下来看看变量!


2变量
  • 在运行中,值会改变的单元,在tensorflow中需要初始化操作


定义变量:

# 注意下面的Varible是大写开头
name_ariable = tf.Variable(value, name)

个别变量的初始化:

init_op = name_variable.initializer()

所有变量的初始化:

init_op = tf.global_variables_initializer()

变量的运算代码:

import tensorflow as tf
node1 = tf.Variable(3.0, tf.float32, name='node1')
node2 = tf.Variable(4.0, tf.float32, name='node2')
result = tf.add(node1, node2, name='result')
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(result))
sess.close()


在这里的 init 是初始化所有的变量,它自己本身也是一个节点,所以我们也要通过session的run()方法对它进行初始化,如果我们注释掉sess.run(init),程序会报错!


3变量的赋值


  • 与传统的编程语言不同,tensorflow中的变量定义之后,一般无需对变量进行人工赋值,系统会根据算法模型,训练优化过程中自动调整变量对应的数值


epoch = tf.Variable(0, name='epoch',trainable=False)


上面的代码把trainable参数设置为False,即取消了系统的自动赋值而是变为


人工赋值


• 特殊情况需要人工更新的,可用变量赋值语句


变量更新语句:


update_op = tf.assign(variable_to_be_updated, new_value)

说了这么多,我们来写个小案例:


import tensorflow as tf
node1 = tf.constant(1)
node2 = tf.Variable(0, name='node2')
# 实现加法操作
value = tf.add(node1, node2, name='value')
update_value = tf.assign(node2, 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(node2))


分析一下这个小案例:首先我们定义了一个常量node1,然后我们定义一个变量node2, 然后我们将两者进行加法运算得到value,然后我们调用了tensorflow中的assign(),也就是变量更新的方法,我们将经过加法得到的结果赋给之前的变量node2,也就是实现了+1的操作。下一句就是初始化所有的变量,然后通过上下文的方法创建session,然后我们来初始化init,并且一个for循环,可以看出我们循环了10次,在这10次循环里,我们每次去运行了update_value,当我们去运行它时,就会牵涉到value,node2这些节点从而去运行这些节点,最后我们每次打印出变量node2的值。


运行输出后的结果:

1
2
3
4
5
6
7
8
9
10


4关于变量的一个小练习




最后给大家一个小练习:


如何通过tensorflow的变量赋值计算:1+2+3…+10?


关注“JAVAandPython君”公众号,在公众号回复 “练习1”,即可获取答案

相关文章
|
机器学习/深度学习
【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
149 0
【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
|
机器学习/深度学习 存储 数据可视化
深度学习:Tensorflow变量op和可视化TensorBoard
深度学习:Tensorflow变量op和可视化TensorBoard
191 0
|
5天前
|
机器学习/深度学习 API 语音技术
|
8天前
|
机器学习/深度学习 监控 算法
深度学习赋能智能监控:图像识别技术的革新与应用
【4月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习在图像处理领域取得了突破性进展。特别是在智能监控系统中,基于深度学习的图像识别技术已成为提升安全和效率的关键工具。本文将探讨深度学习技术如何革新传统监控体系,增强其对复杂场景的理解能力,以及在实际部署中面临的挑战和解决方案。通过分析最新的研究成果和应用案例,我们揭示了深度学习在智能监控领域的潜力及其对未来社会发展的影响。
17 2
|
7天前
|
机器学习/深度学习 监控 安全
智能化视野下的守卫者:基于深度学习的图像识别技术在智能监控领域的革新应用
【4月更文挑战第9天】 随着人工智能技术的飞速发展,深度学习已经成为了推动计算机视觉进步的重要力量。尤其在智能监控领域,基于深度学习的图像识别技术正逐步转变着传统监控系统的功能与效率。本文旨在探讨深度学习技术如何赋能智能监控,提高对场景理解的准确性,增强异常行为检测的能力,并讨论其在实际部署中所面临的挑战和解决方案。通过深入分析,我们揭示了深度学习在智能监控中的应用不仅优化了安全防范体系,也为城市管理和公共安全提供了有力的技术支持。
|
7天前
|
机器学习/深度学习 算法 数据处理
深度学习在图像识别中的创新应用
【4月更文挑战第9天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的关键技术之一。特别是在图像识别任务中,深度学习模型已经展现出超越传统算法的性能。本文将深入探讨深度学习在图像识别领域的最新进展,包括卷积神经网络(CNN)的变体、数据增强技术以及迁移学习等策略。通过对这些技术的综合运用,我们能够实现对复杂图像数据的高效识别和分类,进一步拓展了深度学习在实际应用中的可能性。
10 1
|
7天前
|
机器学习/深度学习 人工智能 算法
深度学习在医学影像诊断中的应用与挑战
传统医学影像诊断一直是医学领域的重要组成部分,但其依赖于医生的经验和技能,存在着诊断准确性不高和效率低下的问题。近年来,随着深度学习技术的发展,越来越多的研究表明,深度学习在医学影像诊断中具有巨大的潜力。本文将探讨深度学习在医学影像诊断中的应用现状、挑战和未来发展趋势。
12 0
|
8天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
【4月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已经成为了计算机视觉领域的核心动力。本文聚焦于深度学习技术在图像识别任务中的运用,探讨了卷积神经网络(CNN)的基本原理、关键结构和训练技巧,并通过实验分析展示了其在处理复杂图像数据时的强大能力。同时,文章也指出了当前深度学习方法面临的主要挑战,如数据偏差、模型泛化能力和计算资源消耗等,并对未来的发展方向进行了展望。