news 2026/6/10 17:39:44

TensorFlow 基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TensorFlow 基础

摘要:本文介绍了TensorFlow中张量的基础概念与操作。张量作为核心数据结构,具有阶、形状和类型三个关键属性。文章详细讲解了一维和二维张量的创建方法及元素访问方式,并演示了张量的矩阵乘法、加法及行列式计算等操作。通过代码实例展示了如何将NumPy数组转换为TensorFlow张量,构建计算图,并使用会话执行张量运算。最后指出计算图是TensorFlow的核心机制,会话负责启动和执行计算图中的运算。

目录

TensorFlow 基础

张量数据结构

TensorFlow 的各类张量维度

一维张量

定义代码

运行结果(命令行)

二维张量

定义代码

运行结果(命令行)

张量的处理与操作

实现代码

运行结果

代码解析


TensorFlow 基础

在本章中,我们将学习 TensorFlow 的基础知识,首先从理解张量的数据结构开始。

张量数据结构

张量是 TensorFlow 语言中最基础的数据结构,代表着数据流图(Data Flow Graph)中的连接边,本质上被定义为多维数组或列表。

张量由以下三个核心参数标识:

  1. 阶(Rank):张量内描述维度的单位,代表张量的维度数量,也可将张量的阶描述为其定义的阶数或 n 维属性。
  2. 形状(Shape):由张量的行数和列数共同确定,表征张量的维度规模。
  3. 类型(Type):指为张量中元素分配的数据类型。

构建张量时,用户需要完成以下操作:

  1. 构建 n 维数组
  2. 转换 n 维数组

张量可分为以下维度类型:一维张量、二维张量、三维张量、四维张量、五维张量

TensorFlow 的各类张量维度

TensorFlow 包含多种维度的张量,各维度张量简要说明如下:

一维张量

一维张量是常规的数组结构,包含一组相同数据类型的值。

定义代码
>>> import numpy as np >>> tensor_1d = np.array([1.3, 1, 4.0, 23.99]) >>> print(tensor_1d)
运行结果(命令行)

plaintext

(tensorflow)C:\Users\Radhika>python Python 3.5.5|Anaconda, Inc.|(default,Apr 7 2018, 04:52:34)[MSC v.1900 64 bit (AMD64)] on win32 Type "help","copyright","credits" or "license" for more information. >>> import numpy as np >>> tensor_1d = np.array([1.3, 1, 4.0, 23.99]) >>> print(tensor_1d) [ 1.3 1. 4. 23.99]

一维张量的元素索引规则与 Python 列表一致,首个元素的索引为 0,通过指定索引编号即可打印对应元素:

>>> print(tensor_1d[0]) 1.3 >>> print(tensor_1d[2]) 4.0

二维张量

二维张量由一系列数组构成,其创建方式如下:

定义代码
>>> import numpy as np >>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)]) >>> print(tensor_2d)
运行结果(命令行)

plaintext

(tensorflow) E:\>python Python 3.5.5|Anaconda, Inc.|(default,Apr 7 2018, 04:52:34)[MSC v.1900 64 bit (AMD64)] on win32 Type "help","copyright","credits" or "license" for more information. >>> import numpy as np >>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)]) >>> print(tensor_2d) [[ 1 2 3 4] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]]

二维张量的特定元素可通过指定行号和列号(即索引编号)进行查找:

>>> tensor_2d[3][2] 14 >>> print(tensor_2d[3][2]) 14

张量的处理与操作

本节将介绍张量的处理与相关操作,首先来看基础实现代码:

实现代码

import tensorflow as tf import numpy as np # 定义两个三维整型数组 matrix1 = np.array([(2,2,2), (2,2,2), (2,2,2)], dtype = 'int32') matrix2 = np.array([(1,1,1), (1,1,1), (1,1,1)], dtype = 'int32') print(matrix1) print(matrix2) # 将数组转换为TensorFlow常量张量 matrix1 = tf.constant(matrix1) matrix2 = tf.constant(matrix2) # 张量矩阵乘法 matrix_product = tf.matmul(matrix1, matrix2) # 张量加法 matrix_sum = tf.add(matrix1, matrix2) # 定义三维浮点型数组 matrix_3 = np.array([(2,7,2), (1,4,2), (9,0,2)], dtype = 'float32') print(matrix_3) # 计算张量的行列式 matrix_det = tf.matrix_determinant(matrix_3) # 创建会话并运行张量操作 with tf.Session() as sess: result1 = sess.run(matrix_product) result2 = sess.run(matrix_sum) result3 = sess.run(matrix_det) print(result1) print(result2) print(result3)

运行结果

plaintext

(tensorflow) E:\TensorFlowProject>python demo1.py [[2 2 2] [2 2 2] [2 2 2]] [[1 1 1] [1 1 1] [1 1 1]] [[2. 7. 2.] [1. 4. 2.] [9. 0. 2.]] 2018-06-28 12:12:56.760005: I T:\src\github\tensorflow\tensorflow\core\platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 [[6 6 6] [6 6 6] [6 6 6]] [[3 3 3] [3 3 3] [3 3 3]] 55.999992

代码解析

上述代码中,我们首先创建了多个多维数组,随后将其转换为 TensorFlow 的张量并构建了计算图,同时通过会话(Session)管理张量的执行。

计算图是 TensorFlow 的核心,用于定义张量之间的数学运算关系;而会话则负责启动计算图,执行张量的乘法、加法、求行列式等操作,并输出最终的计算结果。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 3:01:51

拖延症福音 10个AI论文平台深度测评:专科生毕业论文写作必备工具推荐

在当前高校教育日益注重学术规范与写作质量的背景下,专科生群体在毕业论文写作过程中常常面临选题困难、文献检索繁琐、格式排版不规范等多重挑战。为了帮助更多学生高效完成论文任务,笔者基于2026年的实测数据与真实用户反馈,对市面上主流的…

作者头像 李华
网站建设 2026/6/10 11:43:46

救命神器 9个降AIGC平台测评:专科生降AI率必备工具全解析

在当今学术写作中,AI生成内容(AIGC)的普及让论文查重和AI痕迹检测变得愈发重要。尤其是对于专科生而言,如何在保证内容质量的同时降低AI率、避免被系统识别为AI生成,成为了一个亟待解决的问题。这时候,AI降…

作者头像 李华
网站建设 2026/6/10 4:29:01

李飞飞团队新作:无需修改架构,重组数据即显著提升AI对视频理解能力

一种简单得令人惊讶的方法,只需将现有的短视频素材重组,就能在不增加计算成本的前提下显著提升AI对长视频的理解能力。斯坦福大学、微软研究院和威斯康辛大学团队,提出了VideoWeave数据中心化方法。不需要发明新的复杂架构,也不需…

作者头像 李华
网站建设 2026/6/3 15:48:12

别再傻等了,给 Claude Code 装个通知铃铛

最近用 Claude Code、Copilot CLI 这类 AI Agent 工具的时候,有一个挺烦人的问题:让 AI 在后台跑任务,我总是会忍不住去查看他的执行状态,有时候比较复杂的任务可能会耗时十来分钟,每次来回切换非常浪费时间。 背景 …

作者头像 李华
网站建设 2026/6/6 14:36:59

2026大专大数据技术专业学数据分析指南

大数据技术专业核心课程与数据分析的关系大数据技术专业通常涵盖数据采集、存储、处理、可视化等核心模块,数据分析作为数据处理的关键环节,是大数据技术栈的重要组成部分。掌握数据分析能力有助于理解数据挖掘、机器学习等高级应用场景。数据分析课程可…

作者头像 李华