【paddle】初次尝试

news2025/1/6 17:14:27

张量

张量是 paddlepaddle, torch, tensorflow 等 python 主流机器学习包中唯一通货变量,因此应当了解其基本的功能。

张量 paddle.Tensor 与 numpy.array 的转化

import paddle as paddle
import matplotlib.pyplot as plt 
a=paddle.to_tensor(list(paddle.arange(-3.14,3.15,0.01))) # 生成张量a包含从-3.14到3.14间隔0.01的一维张量
b=paddle.sin(a) 
x=paddle.Tensor.numpy(a)  # 将张量a转化为numpy 数组
y=paddle.Tensor.numpy(b)  # 将张量b转化为numpy 数组
plt.plot(x,y)
plt.grid(True)

在这里插入图片描述

张量 Tensor

stop_gradient 查看一个 Tensor 是否计算并传播梯度,如果 stop_gradient 为 True,则该 Tensor 不会计算梯度,并会阻绝 Autograd 的梯度传播。 反之,则会计算梯度并传播梯度。用户自行创建的 Tensor,默认是 True,模型参数的 stop_gradient 都为 False。

place 查看一个 Tensor 的设备位置,Tensor 可能的设备位置有三种:CPU/GPU/固定内存,其中固定内存也称为不可分页内存或锁页内存, 其与 GPU 之间具有更高的读写效率,并且支持异步传输,这对网络整体性能会有进一步提升,但其缺点是分配空间过多时可能会降低主机系统的性能, 因为其减少了用于存储虚拟内存数据的可分页内存。

  1. CPU: place=paddle.CPUPlace() 或 place=Place(cpu)
  2. GPU: place=paddle.CUDAPlace(0) 或 place=Place(gpu:0)

name 名字

persistable 不会被删除的持久性变量

一维张量

shape 维数
| 0 | 1 |…|n-1|
| - | -| -|- |
|a[0] | a[1] |… |a[n-1]|

a=paddle.to_tensor([0,1,2])
print(a)
print(a.shape)
print(a.place)
print(a.stop_gradient)
a.stop_gradient=False
print(a.stop_gradient)
a.name='Var_a'
print(a.name)

Tensor(shape=[3], dtype=int64, place=Place(cpu), stop_gradient=True,
       [0, 1, 2])
[3]
Place(cpu)
True
False
Var_a
b=paddle.to_tensor([[0,1,2],[4,5,6]])
print(b)
print(b.shape)
print(b[0])
print(b[0,0:2])
print(b[:,1])
Tensor(shape=[2, 3], dtype=int64, place=Place(cpu), stop_gradient=True,
       [[0, 1, 2],
        [4, 5, 6]])
[2, 3]
Tensor(shape=[3], dtype=int64, place=Place(cpu), stop_gradient=True,
       [0, 1, 2])
Tensor(shape=[2], dtype=int64, place=Place(cpu), stop_gradient=True,
       [0, 1])
Tensor(shape=[2], dtype=int64, place=Place(cpu), stop_gradient=True,
       [1, 5])

Tensor 其他属性

dtype 数据类型, ‘bool’,‘float16’,‘float32’,‘float64’,‘uint8’,‘int8’,‘int16’,‘int32’,‘int64’

type 类型

is_leaf 梯度链式法则网上的叶子 (stop_gradient=True)

ndim 张量维数

shape 张量形状

import paddle

x = paddle.to_tensor([1, 2, 3])
y = x[1]
print(y.is_contiguous())

True

渐进步长梯度下降法

考虑函数 f ( x ) = x 0 2 + x 1 2 f(x)=x_0^2+x_1^2 f(x)=x02+x12, 梯度为 ∇ f ( x ) = 2 ( x 0 , x 1 ) ⊤ \nabla f(x)=2(x_0,x_1)^\top f(x)=2(x0,x1)

则其梯度下降格式为

x k + 1 = x k − α k ∇ f ( x k ) x_{k+1}=x_k- \alpha_k \nabla f(x_k) xk+1=xkαkf(xk)

import paddle
root = paddle.to_tensor([[1], [2]], dtype='float32', stop_gradient=False)
y = root[0]**2+root[1]**2
paddle.autograd.backward(y,root,True)
print(root.grad)
for i in range(300):
    root= root - root.grad/(i+3)
    root = paddle.to_tensor(root, dtype='float32', stop_gradient=False) # 不得已而为之, 不然报错 因为 root.grad 输出为 None
    y = root[0]**2+root[1]**2   # 更新目标函数值
    paddle.autograd.backward(y,root,True)  # 更新梯度
print(root)
Tensor(shape=[2, 1], dtype=float32, place=Place(cpu), stop_gradient=False,
       [[2.],
        [4.]])
Tensor(shape=[2, 1], dtype=float32, place=Place(cpu), stop_gradient=False,
       [[0.08197821],
        [0.16395642]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在谷歌浏览器中使用屏幕录制功能

在日常使用电脑的过程中,我们经常会遇到需要记录屏幕操作的情况。无论是制作教学视频、保存游戏过程还是记录会议内容,谷歌浏览器的屏幕录制功能都能帮助我们轻松实现这些需求。那么,如何在谷歌浏览器中启用并使用屏幕录制功能呢?…

万里数据库GreatSQL监控解析

GreatSQL是MySQL的一个分支,专注于提升MGR(MySQL Group Replication)的可靠性及性能。乐维监控平台可以有效地监控GreatSQL,帮助用户及时发现并解决潜在的性能问题。 通过在GreatSQL服务器上安装监控代理,收集数据库性…

APM 3.0.2 | 聚合B站、油管和MF的音乐播放器,支持歌词匹配

APM(Azusa-Player-Mobile)是一款基于B站的第三方音频播放器,现已扩展支持YouTube Music、YouTube、本地音乐、AList和MusicFree等平台。它不仅提供视频作为音频播放,还具备排行榜、分区动态等功能。用户可以通过添加Alist地址接入…

HTML——61. 单行文本框和密码输入框(主讲input元素的type属性)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>单行文本框和密码输入框</title></head><body><!--input元素的type属性&#xff1a;(必须要有)--> <!--单行文本框:1.type"text"2.可…

在Typora中实现自动编号

文章目录 在Typora中实现自动编号1. 引言2. 准备工作3. 自动编号的实现3.1 文章大纲自动编号3.2 主题目录&#xff08;TOC&#xff09;自动编号3.3 文章内容自动编号3.4 完整代码 4. 应用自定义CSS5. 结论 在Typora中实现自动编号 1. 引言 Typora是一款非常流行的Markdown编辑…

微机——计算机中的数制

目录 数制转换&#xff1a; 十进制数转为非十进制数&#xff1a; 二、八、十六进制数之间的转换&#xff1a; 数及字符的表示&#xff1a; 二进制数的加减运算&#xff1a; 无符号数的运算&#xff1a; 带符号数运算中的溢出问题&#xff1a; 计算机中常用的编码&#…

设计心得——流程图和数据流图绘制

一、流程图和数据流图 在软件开发中&#xff0c;画流程图和数据流图可以说是几乎每个人都会遇到。 1、数据流&#xff08;程&#xff09;图 Data Flow Diagram&#xff0c;DFG。它可以称为数据流图或数据流程图。其主要用来描述系统中数据流程的一种图形工具&#xff0c;可以将…

Node 如何生成 RSA 公钥私钥对

一、引入crypto模块 crypto 为node 自带模块&#xff0c;无需安装 const crypto require(crypto);二、封装生成方法 async function generateRSAKeyPair() {return new Promise((resolve, reject) > {crypto.generateKeyPair(rsa, {modulusLength: 2048, // 密钥长度为 …

壁纸样机神器,可以导出高清图片吗?

壁纸样机神器确实支持导出高清图片。根据搜索结果中的信息&#xff0c;壁纸样机神器提供了以下功能&#xff1a; 壁纸样机神器免费体验 高清壁纸上传&#xff1a;壁纸样机神器支持上传您自己的壁纸图片&#xff0c;推荐尺寸为1290 2796&#xff08;9:19.5&#xff09;&#xf…

数据挖掘——神经网络分类

神经网络分类 神经网络分类人工神经网络多层人工神经网络 误差反向传播&#xff08;BP&#xff09;网络后向传播算法 神经网络分类 人工神经网络 人工神经网络主要由大量的神经元以及它们之间的有向连接构成。包含三个方面&#xff1a; 神经元的激活规则 主要是指神经元输入…

快速上手LangChain(三)构建检索增强生成(RAG)应用

文章目录 快速上手LangChain(三)构建检索增强生成(RAG)应用概述索引阿里嵌入模型 Embedding检索和生成RAG应用(demo:根据我的博客主页,分析一下我的技术栈)快速上手LangChain(三)构建检索增强生成(RAG)应用 langchain官方文档:https://python.langchain.ac.cn/do…

Json字符串解析失败

通过第三方服务&#xff0c;拿到响应体的data对象&#xff08;拿到的时候对象是有值的&#xff09; 通过JSON.parseObject方法&#xff0c;拿到的对象&#xff0c;值为null 通过查看对应的json字符串&#xff0c;发现命名不一样... JSONField SeriealizedName注解是用来解析j…

网络安全 | 信息安全管理体系(ISMS)认证与实施

网络安全 | 信息安全管理体系&#xff08;ISMS&#xff09;认证与实施 一、前言二、信息安全管理体系&#xff08;ISMS&#xff09;概述2.1 ISMS 的定义与内涵2.2 ISMS 的核心标准 ——ISO/IEC 27001 三、信息安全管理体系&#xff08;ISMS&#xff09;认证3.1 认证的意义与价值…

《黄药师》药业管理软件 UploadFile 文件上传致RCE漏洞复现

0x01 产品简介 《黄药师》药业管理软件是一款针对我国医药或医疗器械企业经营管理特点而设计的综合管理软件。《黄药师》系列管理软件集进销存、财务、经营分析和GSP管理为一体,从企业经营的各个环节对资金流、物流、信息流等进行系统的管理。它采用“一看就懂,一学就会,一…

电子应用设计方案84:智能 AI 煤气灶系统设计

智能 AI 煤气灶系统设计 一、引言 智能 AI 煤气灶系统旨在提供更安全、便捷和高效的烹饪体验&#xff0c;结合人工智能技术实现智能化的控制和管理。 二、系统概述 1. 系统目标 - 精确控制火力大小&#xff0c;实现精准烹饪。 - 具备智能防干烧和熄火保护功能&#xff0c;确保…

带虚继承的类对象模型

文章目录 1、代码2、 单个虚继承3、vbptr是什么4、虚继承的多继承 1、代码 #include<iostream> using namespace std;class Base { public:int ma; };class Derive1 :virtual public Base { public:int mb; };class Derive2 :public Base { public:int mc; };class Deri…

python +tkinter绘制彩虹和云朵

python tkinter绘制彩虹和云朵 彩虹&#xff0c;简称虹&#xff0c;是气象中的一种光学现象&#xff0c;当太阳光照射到半空中的水滴&#xff0c;光线被折射及反射&#xff0c;在天空上形成拱形的七彩光谱&#xff0c;由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…

学习随想:高维AI数据的训练和推理与一维数据的排序和查找

以下是看Attention Is All You Need这篇文章的一点随想。 说实话&#xff0c;我没看懂transformer是咋回事&#xff0c;但突然一个类比念头&#xff0c;让我感觉有点概念了&#xff0c;虽然所有的类比都是不完备的。 学习随想记录如下&#xff0c;仅供查考&#xff1a; 物理世…

vue 处理二进制文件流下载,封装请求

后端返回的文件流 前端需要处理成下载文件 刚开始一直报错 处理的方法 // http.js import instance from ./axios;export const get (url, params {}, config {}) > instance.get(url, { params, ...config });// api.js /*** 获取下载错误信息* param {string} batchI…

LeetCode 热题 100_将有序数组转换为二叉搜索树(42_108_简单_C++)(二叉树;递归)

LeetCode 热题 100_将有序数组转换为二叉搜索树&#xff08;42_108&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;递归&#xff09;&#xff1a; 代码实现代码实现&#xff08;递归&#xff09;&#xff1…