Python俄罗斯方块可操纵卷积分类 | 稀疏辨识算法 | 微分方程神经求解器

🎯要点

🎯组卷积网络:实现循环组,可视化组动作,实现提升卷积核,MNIST 训练数据集训练组卷积网络的泛化能力 | 🎯可操控卷积网络:紧群的表征与调和分析,代码验证常规表征结果,不可约表征实现,傅里叶变换对群调和分析,实现可操控卷积网络 | 🎯深度概率模型:给定高维和结构化对单变量响应变量建模,实现分类响应模型,顺序响应模型、序列标记模型 | 🎯深度离散潜变量模型:使用FashionMNIST数据集,实现伯努利分布的乘积,实现均匀分类分布,测试先验分布,实现条件概率分布 | 🎯流生成模型 | 🎯超参数调优和多GPU编程 | 🎯贝叶斯神经网络实现 | 🎯非线性动力系统稀疏辨识算法 | 🎯偏微分方程神经网络求解器 | 🎯常微分方程神经网络求解器

🎯语言模型:Python发票合同 | 解缠注意力语言模型

🎯非线性系统:Julia和Python蛛网图轨道图庞加莱截面曲面确定性非线性系统

🍇Python俄罗斯方块可操纵卷积分类

方块,有时也被称为四块、方块,骨牌或四格,是所有已知的俄罗斯方块游戏中使用的方块。它们有七种形状,都可以旋转然后放下。方块的面积都是四个方格。在某些俄罗斯方块游戏中,它们的颜色会有所不同。四格骨牌是由四个方块组成的多格骨牌。七个单面四格骨牌分别是 I、O、T、S、Z、J 和 L。

💦使用门实现模型拟合俄罗斯方块数据集

import loggingimport torch
from torch_cluster import radius_graph
from torch_geometric.data import Data, DataLoader
from torch_scatter import scatterdef tblock():pos = [[(0, 0, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0)],  [(0, 0, 0), (0, 0, 1), (1, 0, 0), (1, -1, 0)],  [(0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3)],  [(0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 0, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 1)], [(0, 0, 0), (1, 0, 0), (1, 1, 0), (2, 1, 0)],  ]pos = torch.tensor(pos, dtype=torch.get_default_dtype())labels = torch.tensor([[+1, 0, 0, 0, 0, 0, 0],  [-1, 0, 0, 0, 0, 0, 0],  [0, 1, 0, 0, 0, 0, 0],  [0, 0, 1, 0, 0, 0, 0],  [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0],  [0, 0, 0, 0, 0, 1, 0],  [0, 0, 0, 0, 0, 0, 1],  ],dtype=torch.get_default_dtype(),)def mean_std(name, x) -> None:print(f"{name} \t{x.mean():.1f} ± ({x.var(0).mean().sqrt():.1f}|{x.std():.1f})")class Convolution(torch.nn.Module):def __init__(self, irreps_in, irreps_sh, irreps_out, num_neighbors) -> None:super().__init__()self.num_neighbors = num_neighborstp = FullyConnectedTensorProduct(irreps_in1=irreps_in,irreps_in2=irreps_sh,irreps_out=irreps_out,internal_weights=False,shared_weights=False,)self.fc = FullyConnectedNet([3, 256, tp.weight_numel], torch.relu)self.tp = tpself.irreps_out = self.tp.irreps_outdef forward(self, node_features, edge_src, edge_dst, edge_attr, edge_scalars) -> torch.Tensor:weight = self.fc(edge_scalars)edge_features = self.tp(node_features[edge_src], edge_attr, weight)node_features = scatter(edge_features, edge_dst, dim=0).div(self.num_neighbors**0.5)return node_featuresclass Network(torch.nn.Module):def __init__(self) -> None:super().__init__()self.num_neighbors = 3.8 self.irreps_sh = o3.Irreps.spherical_harmonics(3)irreps = self.irreps_sh# First layer with gategate = Gate("16x0e + 16x0o",[torch.relu, torch.abs], "8x0e + 8x0o + 8x0e + 8x0o",[torch.relu, torch.tanh, torch.relu, torch.tanh],  # gates (scalars)"16x1o + 16x1e",  )self.conv = Convolution(irreps, self.irreps_sh, gate.irreps_in, self.num_neighbors)self.gate = gateirreps = self.gate.irreps_out# Final layerself.final = Convolution(irreps, self.irreps_sh, "0o + 6x0e", self.num_neighbors)self.irreps_out = self.final.irreps_out

💦多项式拟合俄罗斯方块数据集

import loggingimport torch
from torch_cluster import radius_graph
from torch_geometric.data import Data, DataLoader
from torch_scatter import scatterdef tblock():pos = [[(0, 0, 0), (0, 0, 1), (1, 0, 0), (1, 1, 0)],  [(0, 0, 0), (0, 0, 1), (1, 0, 0), (1, -1, 0)],  [(0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3)],  [(0, 0, 0), (0, 0, 1), (0, 1, 0), (1, 0, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 0)],  [(0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 1, 1)],  [(0, 0, 0), (1, 0, 0), (1, 1, 0), (2, 1, 0)],  ]pos = torch.tensor(pos, dtype=torch.get_default_dtype())labels = torch.tensor([[+1, 0, 0, 0, 0, 0, 0],  [-1, 0, 0, 0, 0, 0, 0],  [0, 1, 0, 0, 0, 0, 0],  [0, 0, 1, 0, 0, 0, 0],  [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0],  [0, 0, 0, 0, 0, 1, 0],  [0, 0, 0, 0, 0, 0, 1],  ],dtype=torch.get_default_dtype(),)pos = torch.einsum("zij,zaj->zai", o3.rand_matrix(len(pos)), pos)dataset = [Data(pos=pos) for pos in pos]data = next(iter(DataLoader(dataset, batch_size=len(dataset))))return data, labelsclass InvariantPolynomial(torch.nn.Module):def __init__(self) -> None:super().__init__()self.irreps_sh: o3.Irreps = o3.Irreps.spherical_harmonics(3)irreps_mid = o3.Irreps("64x0e + 24x1e + 24x1o + 16x2e + 16x2o")irreps_out = o3.Irreps("0o + 6x0e")self.tp1 = FullyConnectedTensorProduct(irreps_in1=self.irreps_sh,irreps_in2=self.irreps_sh,irreps_out=irreps_mid,)self.tp2 = FullyConnectedTensorProduct(irreps_in1=irreps_mid,irreps_in2=self.irreps_sh,irreps_out=irreps_out,)self.irreps_out = self.tp2.irreps_outdef forward(self, data) -> torch.Tensor:num_neighbors = 2  num_nodes = 4  # typical number of nodesedge_src, edge_dst = radius_graph(x=data.pos, r=1.1, batch=data.batch)  edge_vec = data.pos[edge_src] - data.pos[edge_dst]edge_sh = o3.spherical_harmonics(l=self.irreps_sh,x=edge_vec,normalize=False,  normalization="component",)node_features = scatter(edge_sh, edge_dst, dim=0).div(num_neighbors**0.5)edge_features = self.tp1(node_features[edge_src], edge_sh)node_features = scatter(edge_features, edge_dst, dim=0).div(num_neighbors**0.5)edge_features = self.tp2(node_features[edge_src], edge_sh)node_features = scatter(edge_features, edge_dst, dim=0).div(num_neighbors**0.5)return scatter(node_features, data.batch, dim=0).div(num_nodes**0.5)def main() -> None:data, labels = tetris()f = InvariantPolynomial()optim = torch.optim.Adam(f.parameters(), lr=1e-2)# == Train ==for step in range(200):pred = f(data)loss = (pred - labels).pow(2).sum()optim.zero_grad()loss.backward()optim.step()if step % 10 == 0:accuracy = pred.round().eq(labels).all(dim=1).double().mean(dim=0).item()print(f"epoch {step:5d} | loss {loss:<10.1f} | {100 * accuracy:5.1f}% accuracy")def test() -> None:data, labels = tetris()f = InvariantPolynomial()pred = f(data)loss = (pred - labels).pow(2).sum()loss.backward()rotated_data, _ = tetris()error = f(rotated_data) - f(data)assert error.abs().max() < 1e-5

👉参阅一:计算思维

👉参阅二:亚图跨际

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

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

相关文章

[Linux] Screen的简单使用与中途退出保持运行

创建一个新的screen&#xff1a; screen -S test 查看刚才创建的screen&#xff1a; screen -ls中途退出screen: 用ctrlad退出screen&#xff0c;然后再掉cmd窗口了重新打开screen&#xff1a; screen -r 15659.test使用删除命令&#xff1a; screen -X -S 16283.you quit 另附…

node.js学习

node.js学习实操及笔记 温故node.js&#xff0c;node.js学习实操过程及笔记~ node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记 为什么学node.js 可以让别人访问我们编写的网页为后续的框架学习打下基础&#xff0c;三大框架vue react angular离不开node.js …

云手机的 Socks5 网络配置指南

当你在使用云手机之前&#xff0c;了解和正确配置 Socks5 网络代理是提升其性能和功能的关键一步&#xff1b; 直白点来说利用 Socks5 代理进行网络配置&#xff0c;可以带来诸多优势。 什么是socks5&#xff1f; Socks5 是一种重要的网络代理协议&#xff0c;主要功能在于它…

计算机哈佛架构、冯·诺依曼架构对比

哈佛架构和冯诺依曼架构是两种不同的计算机系统架构&#xff0c;它们在存储器组织方式上有着显著的区别。下面是它们的原理、优缺点的对比以及一些常见的 MCU 采用的架构&#xff1a; 哈佛架构&#xff1a; 原理&#xff1a;哈佛架构将指令存储器&#xff08;程序存储器&#x…

在Linux系统中,使用OpenSSL生成CSR(Certificate Signing Request),并同时生成PEM格式的公钥和私钥的命令如下:

在Linux系统中&#xff0c;使用OpenSSL生成CSR&#xff08;Certificate Signing Request&#xff09;&#xff0c;并同时生成PEM格式的公钥和私钥的命令如下&#xff1a; 生成私钥 openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 生成CSR …

【后端】Java学习笔记(二周目-1)

环境 安装JDK8并配置环境变量 jvm核心类库jre jre开发工具jdk Java基础运行流程&#xff0c;代码从上到下&#xff0c;从左往右&#xff0c;只运行一次 桌面—>新建文件夹—>新建记事本—>打开编写代码 public class Hello{public static void main(String[] arg…

如何一键拷贝PPT中的所有文字?

有时我们可能需要引用PPT的文字&#xff0c;但一个幻灯片一个幻灯片拷贝很是麻烦&#xff0c;我们想一键拷贝PPT中所有幻灯片中的内容&#xff08;最近我就遇到了这个需求&#xff09;。今天就来讲讲这个一键拷贝的技巧。因为大家可能会遇到同样的问题&#xff0c;所以在此记录…

一文彻底理解机器学习 ROC-AUC 指标

在机器学习和数据科学的江湖中&#xff0c;评估模型的好坏是非常关键的一环。而 ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线和 AUC&#xff08;Area Under Curve&#xff09;正是评估分类模型性能的重要工具。 这个知识点在面试中也很频繁的出现。尽管…

【机器学习】与【数据挖掘】技术下【C++】驱动的【嵌入式】智能系统优化

目录 一、嵌入式系统简介 二、C在嵌入式系统中的优势 三、机器学习在嵌入式系统中的挑战 四、C实现机器学习模型的基本步骤 五、实例分析&#xff1a;使用C在嵌入式系统中实现手写数字识别 1. 数据准备 2. 模型训练与压缩 3. 模型部署 六、优化与分析 1. 模型优化 模…

主流物联网协议客户端开源库介绍(mqtt,coap,websocket,httphttps,tcp及udp)

一.概述 本文主要介绍主流物联网协议&#xff08;mqtt&#xff0c;coap&#xff0c;websocket&#xff0c;http/https&#xff0c;tcp/udp&#xff09;客户端c/c开源库&#xff0c;并对其特点进行对比分析。 二.各个库具体介绍 1.MQTT &#xff08;1&#xff09;常见的c/c客户…

零基础入门学用Arduino 第二部分(二)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…

通用大模型与垂直大模型:双轨并进的人工智能未来

在人工智能(AI)的浩瀚宇宙中&#xff0c;大模型以其强大的学习能力和广泛的适用性&#xff0c;正逐步成为推动技术进步和产业革新的核心动力。在这股浪潮中&#xff0c;通用大模型与垂直大模型如同两颗璀璨的星辰&#xff0c;各自散发着独特的光芒&#xff0c;共同照亮了AI发展…

VirtualBox配置双网卡实现宿主机和虚拟机相互访问以及虚拟机外网访问

目录 一&#xff1a;背景 二&#xff1a;实现 三&#xff1a;总结 一&#xff1a;背景 在VirtualBox中配置虚拟机以实现本地主机远程登录、访问外网以及虚拟机之间的相互访问&#xff0c;是一种常见的虚拟化实践&#xff0c;适用于多种场景&#xff0c;如开发、测试和远程工…

openh264 帧内预测编码原理:WelsMdI4x4Fast 函数

介绍 说明&#xff1a;该函数内部原理类似WelsMdI4x4函数&#xff0c;具体可以参考&#xff1a;openh264 帧内预测编码原理&#xff1a;WelsMdI4x4 函数。 功能&#xff1a;针对4x4像素块的帧内模式决策的快速实现逻辑原型&#xff1a; int32_t WelsMdI4x4Fast (sWelsEncCtx…

react的自定义组件

// 自定义组件(首字母必须大写) function Button() {return <button>click me</button>; } const Button1()>{return <button>click me1</button>; }// 使用组件 function App() {return (<div className"App">{/* // 自闭和引用自…

RTK(二代redux)和一代redux的对比学习

说明 RTK是在原有的redux基础上进行了二次封装&#xff0c;提供开箱即用的API&#xff0c;所以更像是他的一个类库。 对比来理解&#xff0c;他们俩一个像是js&#xff0c;另一个则像是jQuery。所以为什么不使用jQuery&#xff08;RTK&#xff09;来开发&#xff0c;上手简单。…

使用甲骨文云arm服务器安装宝塔时nginx无法卸载

使用甲骨文云arm服务器安装宝塔 其他环境都能安装上 唯独nginx安装完不运行 卸载了几次以后还无法卸载了. 修复 重启都不行. 差点就重建主机了. 最后靠下面的命令 就卸载掉了 然后重装就把nginx安装好了 mv /www/server/nginx/sbin/nginx /tmp/nginx_back mv /etc/in…

React Redux

React Redux是Redux的官方React UI绑定层。它允许您的React组件从Redux存储读取数据&#xff0c;并将操作分派到存储以更新状态。redux是一个管理状态数据state的容器。提供了可预测的状态管理。 React Redux 8.x需要React 16.8.3或更高版本/Rect Native 0.59或更高&#xff0c…

在AMD GPU上加速大型语言模型的Flash Attention

Accelerating Large Language Models with Flash Attention on AMD GPUs — ROCm Blogs 引言 在这篇博客文章中&#xff0c;我们将指导您如何在AMD GPU上安装Flash Attention&#xff0c;并提供与在PyTorch中标准SDPA比较其性能的基准测试。我们还将测量Hugging Face中多个大型…

软件开发工程师的工作内容

软件开发&#xff0c;通俗说就是写程序&#xff0c;就是把一串一串的命令组合起来&#xff0c;让它来替我们完成某种特定任务。软件开发工程师就是从事软件开发相关工作的人员的统称。 在软件开发的整个流程中&#xff0c;软件开发工程师最主要负责的阶段是软件的编码阶段&…