tensorflow基础

本文详细介绍了TensorFlow中的数据基本类型,包括数值类型、字符串类型、布尔类型及其精度设置,还探讨了张量的创建,如从数组和列表创建、创建全0或1的张量、自定义数值张量以及创建已知分布的张量。

tensorflow基础


前言

tensorflow是一个面向深度学习算法的科学计算库,内部主要以张量的形式进行保存和运算。所有的操作都是基于张量对象进行。负责的神经网络其本质就是各种张量的相加、相乘等操作运算进行组合,并结合强大的数据量、计算力完成相关运算和推理。因此需要掌握基本的张量操作。

本文主要讲解tensor的基本知识

一、数据基本类型

tensorflow中基本的类型有:数值类型、字符串类型和布尔类型。

1.1 数值类型

数值类型是tensorflow主要类型,根据维度可以分为以下几种:
(1)标量(sarlar)
单个的实数,如1、2、3.1等,维度为0,shape为[]。

#1.1定义一个标量
a=2.2  #python中定义的标量
aa=tf.constant(2.2)#tensorflow中定义的标量
print(type(a),a)
print(type(aa),aa)

运行结果如下:

<class 'float'> 2.2
<class 'tensorflow.python.framework.ops.EagerTensor'> tf.Tensor(2.2, shape=(), dtype=float32)

(2)向量(vector)
n个实数的集合,用中括号包裹。如[2,3],[2.3,4,8]等,维度数为1,shape为[n]。与标量不同,向量定义需要通过一个List容器传给tf.constant()函数。

#1.2  定义一个向量
创建一个元素向量
a=tf.constant([2.2])
print(a,type(a),a.shape)

运行结果:

tf.Tensor([2.2], shape=(1,), dtype=float32) <class 'tensorflow.python.framework.ops.EagerTensor'> (1,)

创建多个元素向量

a=tf.constant([2.2,3,4])
print(a,type(a),a.shape)

运行结果如下:

tf.Tensor([2.2 3.  4. ], shape=(3,), dtype=float32) <class 'tensorflow.python.framework.ops.EagerTensor'> (3,)

(3)矩阵(matrix)
n行m列实数组成有序集合,如[[2,3],[3,4]],维度为2,shape[n,m]

#1.3定义一个矩阵
a=tf.constant([[2,3],[5,6]])# 2行2列
print(a,type(a),a.shape)

运行结果如下:

tf.Tensor(
[[2 3]
 [5 6]], shape=(2, 2), dtype=int32) <class 'tensorflow.python.framework.ops.EagerTensor'> (2, 2)
### TensorFlow 基础 API 文档与教程 #### 获取并安装 TensorFlow 为了使用 TensorFlow基础 API,首先需要确保已正确安装 TensorFlow 库。可以通过 pip 工具来完成安装操作: ```bash pip install tensorflow ``` 对于希望利用 GPU 加速计算环境的开发者来说,则需特别注意版本兼容性以及驱动程序的要求。 #### 导入 TensorFlow 模块 成功安装之后,在 Python 脚本或交互环境中导入 TensorFlow 是必不可少的第一步[^4]: ```python import tensorflow as tf ``` 这一步骤使得后续可以方便地调用 TensorFlow 提供的各种功能函数和类定义。 #### 使用常量与变量 TensorFlow 中的数据主要以张量的形式存在。创建一个简单的常量可以直接通过 `tf.constant` 函数实现: ```python hello_world = tf.constant('Hello, TensorFlow!') print(hello_world.numpy()) # 输出: Hello, TensorFlow! ``` 而当涉及到模型参数或其他可能变化的数据时,则应该考虑使用变量 Variable 来表示它们。Variable 对象允许被更新,并且能够自动追踪梯度信息以便于反向传播过程中的优化处理。 ```python w = tf.Variable([0.5], dtype=tf.float32) b = tf.Variable([-0.7], dtype=tf.float32) # 更新 w 和 b 的值 w.assign_add(0.1) b.assign_sub(0.1) ``` #### 构建简单线性回归模型 构建机器学习模型通常涉及定义前向传播路径(即如何从输入得到预测输出)。下面是一个非常基础的例子——单特征线性回归模型的搭建方式: ```python def linear_model(x): return w * x + b ``` 这里假设权重 \(w\) 和偏置项 \(b\) 都已经被初始化为 Variables 类型的对象;给定任意实数类型的输入 \(x\) 后即可获得相应的估计结果。 #### 计算损失函数 为了让模型学会调整内部参数从而更好地拟合数据集,还需要引入衡量误差大小的标准—损失函数 Loss Function。均方差 MSE (Mean Squared Error) 就是一种常用的选择之一: ```python loss_function = lambda y_true, y_pred: tf.reduce_mean(tf.square(y_true - y_pred)) ``` 此表达式接收真实标签值 `y_true` 及由上述线性组合产生的预测得分 `y_pred` ,返回两者之间差异平方平均值得到最终评估指标 score。 #### 执行训练循环 最后便是反复迭代整个流程直至收敛的过程了。每次读取一批次样本点喂给网络做正向推理的同时记录下当前时刻累积下来的总代价 cost 。接着借助选定好的最优化算法 Optimize Algorithm (比如随机梯度下降 SGD 或 Adam),依据链式法则 Chain Rule 自动求导机制推导出各层节点关于目标函数敏感程度的变化趋势 gradient 并据此修正连接权系数 weights 。 ```python optimizer = tf.optimizers.Adam() for epoch in range(num_epochs): with tf.GradientTape() as tape: predictions = linear_model(features) loss_value = loss_function(labels, predictions) gradients = tape.gradient(loss_value, [w,b]) optimizer.apply_gradients(zip(gradients,[w,b])) ``` 以上就是基于 TensorFlow 实现的一个完整的端到端工作流概述[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值