Python深度学习:TensorFlow基础概念与入门示例

Ivy
Ivy
发布时间:2026-10-16 | 16人浏览过
原创

本文介绍Python深度学习框架TensorFlow的基础知识,涵盖张量数据结构、常量与变量定义、占位符用法及计算图原理。通过具体代码示例演示如何创建Session、执行初始化及进行矩阵运算,帮助初学者快速掌握TensorFlow核心操作。

正文

TensorFlow使用张量(Tensor)这一数据结构来存储和处理所有数据。

一阶张量用于表示向量,例如 v = [1.2, 2.3, 3.5];二阶张量用于表示矩阵,例如 m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]。张量的阶数可以通过方括号嵌套的层数来判断。

1、编辑器

编写TensorFlow代码本质上是编写Python文件。建议选用合适的代码编辑器,若习惯使用vim或gedit也可继续。鉴于已安装Anaconda,推荐使用其自带的Spyder编辑器,其操作界面与Matlab相似,且支持在右上角实时查看变量值,因此推荐使用。启动方式简单,只需在终端输入spyder即可。

2、常量

通常使用以下语句引入TensorFlow:

import tensorflow as tf

在后续文章中,将直接使用tf作为TensorFlow的缩写。

在TensorFlow中,定义常量需使用以下语句:

a=tf.constant(10)

上述代码定义了一个值为10的常量a。

3、变量

变量需通过Variable定义,且必须进行初始化,例如:

x=tf.Variable(tf.ones([3,3]))
y=tf.Variable(tf.zeros([3,3]))

上述代码分别定义了一个3x3的全1矩阵x和一个3x3的全0矩阵y,其中0和1为初始值。

变量定义完成后,必须显式执行初始化操作,即在代码后添加:

init=tf.global_variables_initializer()

此步骤不可省略,否则会导致错误。

示例:自定义一个拉普拉斯算子W变量:

import tensorflow as tf
import numpy as np
x=np.array([[1,1,1],[1,-8,1],[1,1,1]])
w=tf.Variable(initial_value=x)
sess=tf.Session()
sess.run(tf.global_variables_initializer())
print(sess.run(w))

4、占位符

若某些变量在定义时未知其具体值,无法直接初始化,该如何处理?

此时可使用占位符(Placeholder)预留位置,例如:

x = tf.placeholder(tf.float32, [None, 784])

需指定变量的数据类型和形状(shape),后续通过feed方式输入具体数值。

5、图(Graph)

若将以下Python语句转换为TensorFlow语句,应如何编写?

x=3
y=2
z=x+y
print(z)

定义两个变量并将两数相加输出结果。若在TensorFlow中直接按上述Python方式编写则是错误的。x、y、z分别为三个tensor对象,对象间的运算称为操作(op)。TensorFlow不会逐条执行各个操作,而是将所有操作放入计算图(graph)中,图中每个节点代表一个操作。随后,将整个graph的计算过程交给TensorFlow的Session,该Session可运行整个计算过程,相比逐条执行操作(operations)效率更高。

执行代码如下:

import tensorflow as tf
x = tf.Variable(3)
y = tf.Variable(5)
z=x+y
init =tf.global_variables_initializer()
with tf.Session() as sess: 
sess.run(init) 
print(sess.run(z))

其中sess.run()用于执行计算,注意需先执行变量初始化操作,再执行运算操作。

Session需先创建,使用完毕后应释放。因此建议使用with...as..语句,由系统自动释放资源。

例子1:hello world

import tensorflow as tf
word=tf.constant('hello,world!')
with tf.Session() as sess:
    print(sess.run(word))

例子2:加法和乘法

import tensorflow as tf 
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
add = tf.add(a, b)
mul = tf.mul(a, b)
with tf.Session() as sess:
    print('a+b=',sess.run(add, feed_dict={a: 2, b: 3}))
    print('a*b=',sess.run(mul, feed_dict={a: 2, b: 3}))

此处使用feed_dict以字典形式向多个变量输入值。

例子3:矩阵乘法

import tensorflow as tf 
a=tf.Variable(tf.ones([3,2]))
b=tf.Variable(tf.ones([2,3]))
product=tf.matmul(5*a,4*b)
init=tf.initialize_all_variables()
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(product))

其中

product=tf.matmul(5*a,4*b)

也可改写为

product=tf.matmul(tf.mul(5.0,a),tf.mul(4.0,b))

定义变量时若未指定数据类型,默认使用float32,因此结果为5.0而非整数5。

以上就是Python深度学习TensorFlow入门基础教程示例的详细内容,更多关于Python深度学习TensorFlow基础的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表