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

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

本文介绍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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。