TensorFlow2框架使用---低阶API

简介: TensorFlow2框架使用---低阶API

TF低阶API的操作及使用


最近有些事情耽误学习进度,想到之前挖的前后端的坑都没填完,烦烦烦! 这篇文章写的太水了,基本就是巩固一下记忆


1.创建张量及计算


import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
# 一些基本的创建张量方法
# 创建常量
a=tf.constant([1.,2,3])
print(a)
# 创建一个列表,delta控制步长,默认为1
b=tf.range(1,10)
print(b)
# 创建一个等距列表
c=tf.linspace(0.,1.,10)
print(c)
# 创建一个全0,全1的矩阵
d=tf.zeros([1,2])
e=tf.ones([1,2])
print(d,e)
# 用一个值填充矩阵
f=tf.fill([2,2],6)
print(f)
# 单位矩阵、对角矩阵
g=tf.eye(2,2)
h=tf.linalg.diag([6,6,6])
print(g,h)
#### 切片操作
# 和numpy pandas类似,以逗号为分隔,前面是行,后面是列
tf.random.set_seed(0)
ran_matrix=tf.random.uniform([5,5],minval=0,maxval=10,dtype=tf.int32)
tf.print(ran_matrix)
## 取第一行
tf.print(ran_matrix[0])
## 取最后一行
tf.print(ran_matrix[-1])
## 取最后一列
tf.print(ran_matrix[:,-1])
## 取前三行前两列
tf.print(ran_matrix[:3,:2])
## 取前四行每隔一列取一列
tf.print(ran_matrix[:4,::2])
# 一些函数用法
### 参考https://shelgi.blog.csdn.net/article/details/103083463
复制代码


2. 张量的计算


import tensorflow as tf
import numpy as np
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='1'
# 两个矩阵对应位置元素相加
a=tf.constant([[1.,2.],[-3.,4.]])
b=tf.constant([[5.,6.],[-7.,8.]])
tf.print(a+b)
## 两个矩阵相减,对应位置元素相减
tf.print(a-b)
## 两个矩阵对应位置元素相乘
tf.print(a*b)
## 两个矩阵矩阵乘法
tf.print(a@b,tf.matmul(a,b))
## 两个矩阵对应位置元素相除
tf.print(a/b)
## 矩阵对应位置元素n次方
tf.print(a**3)
## 两个矩阵对应位置的最大值
tf.print(tf.maximum(a,b))
## 两个矩阵对应位置的最小值
tf.print(tf.minimum(a,b))
### 四舍五入 tf.math.round()
### 向下取整 tf.math.floor()
### 向上取整 tf.math.ceil()
### 裁剪,保留规定区间内的数
x=tf.constant([0.1,0.2,0.5,1.2,2.3,20.,-3.])
y=tf.clip_by_value(x,clip_value_min=1,clip_value_max=10)
## 针对L2范数进行剪裁阈值 clip_norm: 裁剪阈值,l2norm(t) > clip_norm 进行梯度裁剪,裁剪方式:t * clip_norm / l2norm(t)
z=tf.clip_by_norm(x,clip_norm=3)
tf.print(y)
tf.print(z)
## 矩阵转置
tf.print(tf.transpose(a))
## 矩阵求逆 伪逆是pinv()
tf.print(tf.linalg.inv(a))
## 矩阵的迹
tf.print(tf.linalg.trace(a))
## 矩阵的范数
tf.print("范数")
tf.print(tf.linalg.norm(a,ord=1))
tf.print(tf.linalg.norm(a))
## 矩阵的行列式
tf.print(tf.linalg.det(a))
## 矩阵的特征值
a1=tf.constant([[3.,2],[2,4]])
tf.print(a1)
e,v=tf.linalg.eigh(a1)
tf.print(e,v)
tf.print(a1@tf.reshape(v[:,0],(2,1)))
tf.print(e[0]*tf.reshape(v[:,0],(2,1)))
tf.print(a1@tf.reshape(v[:,0],(2,1))-e[0]*tf.reshape(v[:,0],(2,1)))
tf.print("=============================================")
e,v=np.linalg.eigh(a1)
tf.print(e,v)
tf.print(np.dot(a1,v[:,0])-e[0]*v[:,0])
tf.print("+================================")
## 矩阵的QR分解
## https://zhuanlan.zhihu.com/p/112327923
q,r=tf.linalg.qr(a)
tf.print(q,r)
tf.print(q@tf.transpose(q))
tf.print(q@r)
### SVD分解
### diag转为对角矩阵
v,s,d=tf.linalg.svd(a)
tf.print(s@tf.linalg.diag(v)@d)
tf.print("=========================================================")
## 对一列向量进行操作
ran=tf.range(1,10)
tf.print(ran)
### 对一列进行求和、平均、内部元素乘法
tf.print(tf.reduce_sum(ran),tf.reduce_mean(ran),tf.reduce_prod(ran))
### 对一列进行自定义函数操作,l/r代表从左往右还是从右往左
tf.print(tf.foldl(lambda a,b:a-b,ran[0:5]),tf.foldr(lambda a,b:a-b,ran[0:5]))
### 累加及累乘
tf.print(tf.cumsum(ran),tf.math.cumprod(ran))
### 对张量排序
tf.print(tf.sort(ran))
v,index=tf.math.top_k(ran,2)
tf.print(index,v)
aa = tf.constant([1,2,3])
bb = tf.constant([[0,0,0],[1,1,1],[2,2,2]])
tf.print(aa+bb)
cc=tf.constant([[1],[2],[3]])
tf.print(aa+cc)
tf.print(bb+cc)
复制代码


image.png

这是最后广播的结果

目录
相关文章
|
2月前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
103 3
|
11天前
|
JavaScript 前端开发 Java
信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ&插件项目
信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ&插件项目
|
2月前
|
Web App开发 JavaScript Cloud Native
构建高效可扩展的RESTful API:Node.js与Express框架实践指南构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第29天】 在数字化时代的驱动下,后端服务架构的稳定性与效率成为企业竞争力的关键。本文深入探讨了如何利用Node.js结合Express框架构建一个高效且可扩展的RESTful API。我们将从设计理念、核心模块、中间件应用以及性能优化等方面进行系统性阐述。通过实例引导读者理解RESTful接口设计的最佳实践,并展示如何应对大规模并发请求的挑战,确保系统的高可用性与安全性。
|
2月前
|
机器学习/深度学习 数据可视化 PyTorch
TensorFlow与PyTorch框架的深入对比:特性、优势与应用场景
【5月更文挑战第4天】本文对比了深度学习主流框架TensorFlow和PyTorch的特性、优势及应用场景。TensorFlow以其静态计算图、高性能及TensorBoard可视化工具适合大规模数据处理和复杂模型,但学习曲线较陡峭。PyTorch则以动态计算图、易用性和灵活性见长,便于研究和原型开发,但在性能和部署上有局限。选择框架应根据具体需求和场景。
|
2月前
|
Web App开发 JavaScript 前端开发
构建高效Web API:使用Node.js与Express框架
构建高效Web API:使用Node.js与Express框架
25 0
|
2月前
|
缓存 API 数据库
构建高效Python Web应用:Flask框架与RESTful API设计原则
【5月更文挑战第20天】 在现代Web开发中,构建一个轻量级且高效的后端服务至关重要。本文将深入探讨如何使用Python的Flask框架结合RESTful API设计原则来创建可扩展和易于维护的Web应用程序。我们将通过分析Flask的核心特性,以及如何利用它来实现资源的合理划分、接口的版本控制和请求处理优化等,来指导读者打造高性能的API服务。文中不仅提供了理论指导,还包括了实践案例,旨在帮助开发者提升开发效率,并增强应用的稳定性和用户体验。
|
2月前
|
Java 测试技术 API
Python的api自动测试选择合适的测试框架
【4月更文挑战第18天】在Python API自动测试中,选择合适的框架至关重要。常见的测试工具有unittest(集成度高,适合基础测试)、pytest(功能强大,支持插件扩展和高级功能)、requests-mock(用于HTTP请求模拟和断言)、rest-assured(针对RESTful API的简洁测试)以及allure-pytest(生成美观的测试报告)。选择时要考虑项目需求、团队熟悉度和社区支持。确保遵循良好测试实践,编写清晰、全面的测试用例。
32 2
|
2月前
|
机器学习/深度学习 API TensorFlow
TensorFlow的高级API:tf.keras深度解析
【4月更文挑战第17天】本文深入解析了TensorFlow的高级API `tf.keras`,包括顺序模型和函数式API的模型构建,以及模型编译、训练、评估和预测的步骤。`tf.keras`结合了Keras的易用性和TensorFlow的性能,支持回调函数、模型保存与加载等高级特性,助力提升深度学习开发效率。
|
2月前
|
JavaScript 前端开发 API
如何利用Python的Flask框架与Vue.js创建RESTful API服务
【4月更文挑战第10天】本文介绍了如何使用Flask和Vue.js创建一个前后端分离的RESTful API服务。Flask作为后端框架,负责提供CRUD操作,与SQLite数据库交互;Vue.js作为前端框架,构建用户界面并利用axios库与后端API通信。通过示例代码,展示了Flask设置路由处理用户数据以及Vue组件如何调用API获取和操作数据。此基础结构为构建更复杂的Web应用提供了起点。
|
2月前
|
JSON Java API
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
34 1