广告
返回顶部
首页 > 资讯 > 后端开发 > Python >返回最大值的indexpytorch方式
  • 370
分享到

返回最大值的indexpytorch方式

2024-04-02 19:04:59 370人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录返回最大值的indexPyTorch 找最大值返回最大值的index import torch a=torch.tensor([[.1,.2,.3],              

返回最大值的index

import torch
a=torch.tensor([[.1,.2,.3],
                [1.1,1.2,1.3],
                [2.1,2.2,2.3],
                [3.1,3.2,3.3]])
print(a.argmax(dim=1))
print(a.argmax())

输出:

tensor([ 2,  2,  2,  2])
tensor(11)

pytorch 找最大值

题意:使用神经网络实现,从数组中找出最大值。

提供数据:两个 csv 文件,一个存训练集:n 个 m 维特征自然数数据,另一个存每条数据对应的 label ,就是每条数据中的最大值。

这里将随机构建训练集:

#%%
import numpy as np 
import pandas as pd 
import torch 
import random 
import torch.utils.data as Data
import torch.nn as nn
import torch.optim as optim
  
def GetData(m, n):
    dataset = []
    for j in range(m):
        max_v = random.randint(0, 9)
        data = [random.randint(0, 9) for i in range(n)]
        dataset.append(data)
    label = [max(dataset[i]) for i in  range(len(dataset))]
    data_list = np.column_stack((dataset, label))
    data_list = data_list.astype(np.float32)
    return data_list
 
#%%
# 数据集封装 重载函数len, getitem
class GetMaxEle(Data.Dataset):
    def __init__(self, trainset):
        self.data = trainset 
 
    def __getitem__(self, index):
        item = self.data[index]
        x = item[:-1]
        y = item[-1]
        return x, y
    
    def __len__(self):
        return len(self.data)
 
# %% 定义网络模型
class SingleNN(nn.Module):
    def __init__(self, n_feature, n_hidden, n_output):
        super(SingleNN, self).__init__()
        
        self.hidden = nn.Linear(n_feature, n_hidden)
        self.relu = nn.ReLU()
        self.predict = nn.Linear(n_hidden, n_output)
 
    def forward(self, x):
        x = self.hidden(x)
        x = self.relu(x)
        x = self.predict(x)
        return x
  
def train(m, n, batch_size, PATH):
    # 随机生成 m 个 n 个维度的训练样本
    data_list =GetData(m, n)
    dataset = GetMaxEle(data_list)
    trainset = torch.utils.data.DataLoader(dataset, batch_size=batch_size,
                                      shuffle=True)
 
    net = SingleNN(n_feature=10, n_hidden=100,
                   n_output=10)
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
    #
    total_epoch = 100
    for epoch in range(total_epoch):
        for index, data in enumerate(trainset):
            input_x, labels = data
            labels = labels.long()
            optimizer.zero_grad()
 
            output = net(input_x)
            # print(output)
            # print(labels)
            loss = criterion(output, labels)
            loss.backward()
            optimizer.step()
 
        # scheduled_optimizer.step()
        print(f"Epoch {epoch}, loss:{loss.item()}")
 
    # %% 保存参数
    torch.save(net.state_dict(), PATH)
    #测试 
  
def test(m, n, batch_size, PATH):
    data_list = GetData(m, n)
    dataset = GetMaxEle(data_list)
    testloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size)
    dataiter = iter(testloader)
    input_x, labels = dataiter.next()
    net = SingleNN(n_feature=10, n_hidden=100,
                   n_output=10)
    net.load_state_dict(torch.load(PATH))
    outputs = net(input_x)
 
    _, predicted = torch.max(outputs, 1)
    print("Ground_truth:",labels.numpy())
    print("predicted:",predicted.numpy())
  
if __name__ == "__main__":
    m = 1000
    n = 10
    batch_size = 64
    PATH = './max_list.pth'
    train(m, n, batch_size, PATH)
    test(m, n, batch_size, PATH)

初始的想法是使用全连接网络+分类来实现, 但是结果不尽人意,主要原因:不同类别之间的样本量差太大,几乎90%都是最大值。

比如代码中随机构建 10 个 0~9 的数字构成一个样本[2, 3, 5, 8, 9, 5, 3, 9, 3, 6], 该样本标签是9。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 返回最大值的indexpytorch方式

本文链接: https://www.lsjlt.com/news/119412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 返回最大值的indexpytorch方式
    目录返回最大值的indexpytorch 找最大值返回最大值的index import torch a=torch.tensor([[.1,.2,.3],              ...
    99+
    2022-11-11
  • 返回最大值的index pytorch方式是什么
    这篇文章主要讲解了“返回最大值的index pytorch方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“返回最大值的index pytorch方式是什么”吧!返...
    99+
    2023-07-02
  • mybatis如何返回某列的最大值
    mybatis返回某列的最大值 Mapper文件中sql: <select id="queryMaxId" resultType="Integer"> s...
    99+
    2022-11-12
  • python中的np.argmax() 返回最大值索引号
    看代码吧~ import numpy as np a = np.array([[2, 4, 6, 1], [1, 5, 2, 9]]) print(np.argmax(a)) print(np.argmax(a,...
    99+
    2022-06-02
    python np.argmax返回 最大值索引号
  • Shell函数返回值方式
    目录1、返回值的方式:2、return和echo使用场景区别:3、场景示例1、返回值的方式: 方法一:return方法二: echo 2、return和echo使用场景区别: (1).使用return返回值: 使用ret...
    99+
    2022-08-08
    Shell函数返回值 Shell返回值
  • python使用max函数返回参数的最大值
    在python中使用max函数返回参数最大值的方法max:max()函数的作用是返回给定参数的最大值。max()函数语法:max( x, y, z, .... )max()函数使用方法:print ("max(80, 100, 1000) ...
    99+
    2022-10-20
  • SQL怎么返回最大值所在的多条记录
    这期内容当中小编将会给大家带来有关SQL怎么返回最大值所在的多条记录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SQL 中通过 top 或 limit 子句得到第一条数据不难,再配合排序,就能得到最大的...
    99+
    2023-06-03
  • JavaScript隐式返回值的简写方法
    小编给大家分享一下JavaScript隐式返回值的简写方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!隐式返回值简写经常使用return语句来返回函数最终结果,一个单独语句的箭头函数能隐式返回其值(函数必须省略{}为了省...
    99+
    2023-06-27
  • springboot返回值转成JSONString的处理方式
    目录返回值转成JSONString的处理主要需求描述解决方法JSON.toJSONString使用前提使用返回值转成JSONString的处理 主要需求描述 有些返回值中的null需...
    99+
    2022-11-13
  • Feign接口方法返回值设置方式
    一、介绍 随着微服务的广泛应用,越来越多的企业都会使用微服务进行项目开发,在各个服务之间需要通过feign来进行通信,所以在feign调用接口中方法会接受其他服务接口不同类型返回值。...
    99+
    2022-11-12
  • @validated注解异常返回JSON值方式
    目录@validated注解异常返回JSON值使用@Valid注解,对其参数错误异常的统一处理@validated注解异常返回JSON值 @ControllerAdvice pu...
    99+
    2022-11-12
  • 怎么在python中使用np.argmax() 返回最大值索引号
    怎么在python中使用np.argmax() 返回最大值索引号?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。import numpy as...
    99+
    2023-06-15
  • Python 获取线程返回值的三种方式
    提到线程,你的大脑应该有这样的印象:我们可以控制它何时开始,却无法控制它何时结束,那么如何获取线程的返回值呢?今天就分享一下自己的一些做法。方法一:使用全局变量的列表,来保存返回值ret_values = [] def thread_fu...
    99+
    2023-05-14
    Python CPython 返回值
  • C语言函数多个返回值方式
    目录函数返回多个值下面附上小小的demo函数中有多个return?C语言中一个函数可以有几个返回值?总结函数返回多个值 在平时项目中,我们会遇到一个函数要返回多个值的问题。 但是c语...
    99+
    2023-02-24
    C语言函数 多个返回值 C语言函数返回值
  • C语言中带返回值的宏定义方式
    目录C语言中带返回值的宏定义宏定义编写宏定义分析宏定义验证经验总结C语言中一些宏定义和常用的函数typeof 关键字snprintf()函数的作用__builtin_expect的作...
    99+
    2023-02-24
    C语言返回值 C语言宏定义 C语言宏返回值
  • Python获取协程返回值的方式有哪些
    这篇文章主要介绍“Python获取协程返回值的方式有哪些”,在日常操作中,相信很多人在Python获取协程返回值的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python获取协程返回值的方式有哪些...
    99+
    2023-06-22
  • C/C++ 引用作为函数的返回值方式
    目录case1:用返回值方式调用函数case2:用函数的返回值初始化引用的方式调用函数case3:用返回引用的方式调用函数case4:用函数返回的引用作为新引用的初始化值的方式来调用...
    99+
    2022-11-13
  • Python获取线程返回值的方式有哪些
    这篇文章主要讲解了“Python获取线程返回值的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python获取线程返回值的方式有哪些”吧!方法一:使用全局变量的列表,来保存返回值r...
    99+
    2023-07-06
  • MyBatis新增数据并返回主键值方式
    目录MyBatis新增数据并返回主键值MyBatis新增更新返回主键总结MyBatis新增数据并返回主键值 虽然这个功能比较简单,网上帖子也很多,但是有一个地方有点坑,这里做一个对比...
    99+
    2023-03-06
    MyBatis新增数据 新增数据 返回主键值
  • java中的方法返回值使用泛型,实现灵活的返回值类型
      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java bean类型,所以要考虑怎么样给调用者返回正确的返回...
    99+
    2023-09-02
    mybatis java spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作