简单的torch网络模型记录

news/2024/12/2 14:38:00/
  1. 线性dense网络结构,输入(B,W)
    `
class Model(nn.Module):def __init__(self):super().__init__()self.media_type_embed = nn.Embedding(num_media_type, embed_dim)self.mid_scroe_embed = nn.Embedding(num_mid_score, embed_dim)#self.cat = torch.cat()self.model = nn.Sequential(nn.Linear(embed_dim*2, 256),nn.ReLU(),nn.Linear(256, 2),#nn.Sigmoid(),)def forward(self, x,):#print("x :",x.shape)[media_type,mid_score] = xx_media = self.media_type_embed(media_type)x_mid = self.mid_scroe_embed(mid_score)x = torch.cat((x_media, x_mid), -1)x = self.model(x)return xmodel = Model()
model.to(device)`optimizer = torch.optim.Adam(model.parameters(), lr=lr)
criterion =  nn.CrossEntropyLoss()

2.conv1d卷积网络:输入(B,C,W)

import torch
import torch.nn as nn# 定义一个一维卷积神经网络模型
class CNN1D(nn.Module):def __init__(self, input_dim, output_dim):super(CNN1D, self).__init__()self.conv1 = nn.Conv1d(in_channels=1, out_channels=16, kernel_size=3)self.conv2 = nn.Conv1d(in_channels=16, out_channels=32, kernel_size=3)self.pool = nn.MaxPool1d(kernel_size=2)self.fc1 = nn.Linear(32 * 47, 64)self.fc2 = nn.Linear(64, output_dim)def forward(self, x):x = self.conv1(x)x = nn.functional.relu(x)x = self.pool(x)x = self.conv2(x)x = nn.functional.relu(x)x = self.pool(x)x = x.view(-1, 32 * 47)x = self.fc1(x)x = nn.functional.relu(x)x = self.fc2(x)return x# 实例化模型并定义损失函数和优化器
model = CNN1D(input_dim=100, output_dim=10)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)# 定义数据集并训练模型
for epoch in range(100):for i, (inputs, labels) in enumerate(data_loader):optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()

http://www.ppmy.cn/news/1381042.html

相关文章

剑指offer C ++双栈实现队列

1. 基础 队列:先进先出,即插入数据在队尾进行,删除数据在队头进行; 栈:后进先出,即插入与删除数据均在栈顶进行。 2. 思路 两个栈实现一个队列的思想:用pushStack栈作为push数据的栈&#xff…

ImportError: libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

报错: ImportError: /public/software/compiler/gcc/gcc-9.3.0/lib64/libstdc.so.6: version GLIBCXX_3.4.29 not found (required by /public/home/python3.8/site-packages/pandas/_libs/window/aggregations.cpython-38-x86_64-linux-gnu.so)这个ImportError表…

细粒度IP定位参文2(Corr-SLG):A street-level IP geolocation method (2021年)

[2]S. Ding, F. Zhao, and X. Luo, “A street-level IP geolocation method based on delay-distance correlation and multilayered common routers,” Secur. Commun. Netw., vol. 2021, no. 1, pp. 1–10, 2021. 智能设备的地理位置可以帮助提供多媒体内容提供商和5G网络中…

Linux认识与学习BASH

Linux认识与学习BASH 认识BASH这个Shellshell是什么系统的合法shell与/etc/shells功能Bash Shell的功能查询命令是否为Bash shell 的内置命令(type)命令的执行与快速编辑按钮 shell的变量功能什么是变量?变量的使用与设置:echo、变量设置规则、unset环境…

触发器

触发器的用途1 利用触发器检查输入数据的合理性 利用触发器维护冗余数据查看触发器 一、为什么使用触发器 触发器(TRIGGER)是MySQL的与表的insert,delete,update语句相关的数据库对象之一,当表上出现特定事件时&#…

FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码…

高效的ElasticSearch Java API - my-elasticsearch-starter

ES Java Api有很多种,本文主要是基于Spring Boot进行封装的,为什么选择Spring Boot,可以看往期文章 Elasticsearch入门必读指南:到底选择哪个ES版本更合适 。 Spring Boot现在也是Java生态中主流的开发框架使用最广泛,…

配送平台从设计到实践的经验总结

配送平台在现代物流领域扮演着重要的角色,它通过协调货物的运输和交付,为商家和消费者提供了高效、可靠的配送服务。本篇博客文章将深入探讨配送平台从设计到实践的全过程,并分享关键的经验和最佳实践。 ### 1. 业务需求与目标 在设计配送平…