最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

返回最大值的index pytorch方式

 更新時間:2022年07月16日 15:37:45   作者:catbird233  
這篇文章主要介紹了返回最大值的index pytorch方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

返回最大值的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 找最大值

題意:使用神經(jīng)網(wǎng)絡實現(xiàn),從數(shù)組中找出最大值。

提供數(shù)據(jù):兩個 csv 文件,一個存訓練集:n 個 m 維特征自然數(shù)數(shù)據(jù),另一個存每條數(shù)據(jù)對應的 label ,就是每條數(shù)據(jù)中的最大值。

這里將隨機構建訓練集:

#%%
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
 
#%%
# 數(shù)據(jù)集封裝 重載函數(shù)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)
 
# %% 定義網(wǎng)絡模型
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()}")
 
    # %% 保存參數(shù)
    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)

初始的想法是使用全連接網(wǎng)絡+分類來實現(xiàn), 但是結(jié)果不盡人意,主要原因:不同類別之間的樣本量差太大,幾乎90%都是最大值。

比如代碼中隨機構建 10 個 0~9 的數(shù)字構成一個樣本[2, 3, 5, 8, 9, 5, 3, 9, 3, 6], 該樣本標簽是9。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 使用python把Excel中的數(shù)據(jù)在頁面中可視化

    使用python把Excel中的數(shù)據(jù)在頁面中可視化

    最近學習數(shù)據(jù)分析,感覺Python做數(shù)據(jù)分析真的好用,下面這篇文章主要給大家介紹了關于如何使用python把Excel中的數(shù)據(jù)在頁面中可視化的相關資料,需要的朋友可以參考下
    2022-03-03
  • Python簡單刪除列表中相同元素的方法示例

    Python簡單刪除列表中相同元素的方法示例

    這篇文章主要介紹了Python簡單刪除列表中相同元素的方法,結(jié)合具體實例形式分析了Python使用list、set方法針對列表元素的去重與排序操作實現(xiàn)技巧,非常簡單實用,需要的朋友可以參考下
    2017-06-06
  • Python如何設置指定窗口為前臺活動窗口

    Python如何設置指定窗口為前臺活動窗口

    這篇文章主要介紹了Python如何設置指定窗口為前臺活動窗口,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Python使用ThreadPoolExecutor一次開啟多個線程

    Python使用ThreadPoolExecutor一次開啟多個線程

    通過使用ThreadPoolExecutor,您可以同時開啟多個線程,從而提高程序的并發(fā)性能,本文就來介紹一下Python使用ThreadPoolExecutor一次開啟多個線程,感興趣的可以了解一下
    2023-11-11
  • Python實現(xiàn)TCP探測目標服務路由軌跡的原理與方法詳解

    Python實現(xiàn)TCP探測目標服務路由軌跡的原理與方法詳解

    這篇文章主要介紹了Python實現(xiàn)TCP探測目標服務路由軌跡的原理與方法,結(jié)合實例形式分析了Python TCP探測目標服務路由軌跡的原理、實現(xiàn)方法及相關操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Python requests HTTP驗證登錄實現(xiàn)流程

    Python requests HTTP驗證登錄實現(xiàn)流程

    這篇文章主要介紹了Python requests HTTP驗證登錄實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • django和vue實現(xiàn)數(shù)據(jù)交互的方法

    django和vue實現(xiàn)數(shù)據(jù)交互的方法

    今天小編就為大家分享一篇django和vue實現(xiàn)數(shù)據(jù)交互的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Jinja2實現(xiàn)模板渲染與訪問對象屬性流程詳解

    Jinja2實現(xiàn)模板渲染與訪問對象屬性流程詳解

    要了解jinja2,那么需要先理解模板的概念。模板在Python的web開發(fā)中廣泛使用,它能夠有效的將業(yè)務邏輯和頁面邏輯分開,使代碼可讀性增強,并且更加容易理解和維護。模板簡單來說就是一個其中包含占位變量表示動態(tài)部分的文,模板文件在經(jīng)過動態(tài)賦值后,返回給用戶
    2023-03-03
  • python利用rsa庫做公鑰解密的方法教程

    python利用rsa庫做公鑰解密的方法教程

    RSA是一種公鑰密碼算法,RSA的密文是對代碼明文的數(shù)字的 E 次方求mod N 的結(jié)果。下面這篇文章主要給大家介紹了關于python利用rsa庫做公鑰解密的方法教程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • python二進制文件的轉(zhuǎn)譯詳解

    python二進制文件的轉(zhuǎn)譯詳解

    這篇文章主要介紹了python二進制文件的轉(zhuǎn)譯詳解的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論

石柱| 肥乡县| 五原县| 南江县| 慈利县| 平武县| 岢岚县| 象州县| 台东县| 长兴县| 谷城县| 昭觉县| 黎城县| 霍州市| 栖霞市| 关岭| 永安市| 宜春市| 商水县| 绥阳县| 定结县| 邻水| 上林县| 益阳市| 娄底市| 绥芬河市| 凌云县| 青州市| 高淳县| 霍城县| 台北县| 抚州市| 尚义县| 墨玉县| 临沭县| 甘孜| 沙坪坝区| 枣庄市| 荆门市| 河津市| 池州市|