首页 > 其他分享 >训练神经网络挑主要特征

训练神经网络挑主要特征

时间:2022-12-03 09:44:30浏览次数:39  
标签:训练 nn 特征 torch feature label 神经网络 test Linear

因为我每次初始化不同的模型表现不同,我猜测可能是过拟合,于是我决定根据第一层神经网络的权重来选择特征。代码:

import matplotlib.pyplot as plt import numpy as np import pandas as pd import torch import torch.fft as fft df = pd.read_csv('train.csv') df=df.drop(['ID'],axis=1) nmp=df.to_numpy() feature=nmp[:-20,:-1] label=nmp[:-20,-1]#(210,240) feature=torch.fft.fft(torch.Tensor(feature)) feature=torch.abs(feature)/240*2 feature=feature[:,[0, 1, 60, 180, 239, 58, 59, 61, 179, 181, 182, 120, 62, 178, 119, 121, 117, 123, 2, 238, 55, 65, 175, 185, 63, 116, 124, 177, 118, 122, 56, 64, 176, 184, 57, 183]] test_feature=nmp[-20:,:-1] test_label=nmp[-20:,-1]#(210,240)
test_feature=torch.fft.fft(torch.Tensor(test_feature)) test_feature=torch.abs(test_feature)/240*2 test_feature=test_feature[:,[0, 1, 60, 180, 239, 58, 59, 61, 179, 181, 182, 120, 62, 178, 119, 121, 117, 123, 2, 238, 55, 65, 175, 185, 63, 116, 124, 177, 118, 122, 56, 64, 176, 184, 57, 183]] from torch import nn import torch loss=nn.MSELoss() feature=torch.Tensor(feature) label=torch.Tensor(label) label=label.reshape(-1,1)
test_feature=torch.Tensor(test_feature) test_label=torch.Tensor(test_label) test_label=test_label.reshape(-1,1) network=nn.Sequential(nn.Linear(36,2),nn.Sigmoid(),nn.Linear(2,2),nn.Sigmoid(),nn.Linear(2,1),nn.Sigmoid()) #network=nn.Sequential(nn.Linear(36,2),nn.Sigmoid(),nn.Linear(2,2),nn.Sigmoid(),nn.Linear(2,2),nn.Sigmoid(),nn.Linear(2,1),nn.Sigmoid()) #network=nn.Sequential(nn.Linear(36,2),nn.Sigmoid(),nn.Linear(2,1),nn.Sigmoid()) #network=nn.Sequential(nn.Linear(36,4),nn.Sigmoid(),nn.Linear(4,1),nn.Sigmoid()) import torch.optim as optim optimizer = optim.Adam(network.parameters(), lr=0.004) for epoch in range(100000):     optimizer.zero_grad()     out=network(feature)     l=loss(out,label)     l.backward()     optimizer.step()     Y = torch.ge(out, 0.5).float()     acc=Y.eq(label).float().sum()/len(label)     out=network(test_feature)     Y = torch.ge(out, 0.5).float()     test_acc=Y.eq(test_label).float().sum()/len(test_label)     print(epoch,l,acc,test_acc)     #if test_acc==0.50 and acc>0.93:     if acc>=0.82 and test_acc>=0.90:         break for k,v in network.named_parameters():     print(k)     print(v)

标签:训练,nn,特征,torch,feature,label,神经网络,test,Linear
From: https://www.cnblogs.com/hahaah/p/16947029.html

相关文章

  • 深度神经网络
    network=nn.Sequential(nn.Linear(36,2),nn.Sigmoid(),nn.Linear(2,2),nn.Sigmoid(),nn.Linear(2,1),nn.Sigmoid())network=nn.Sequential(nn.Linear(36,4),nn.Sigmoid(),......
  • 代码随想录训练营第五十一天 | 动态规划
    今天是第五十一天,继续动态规划里的股票问题  309.最佳买卖股票时机含冷冻期 classSolution{publicintmaxProfit(int[]prices){intn=pri......
  • 蓝桥杯 ALGO-50算法训练 数组查找及替换
    问题描述给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。......
  • 蓝桥杯 ALGO-47算法训练 蜜蜂飞舞
    时间限制:1.0s内存限制:512.0MB问题描述“两只小蜜蜂呀,飞在花丛中呀……”话说这天天上飞舞着两只蜜蜂,它们在跳一种奇怪的舞蹈。用一个空间直角坐标系来描述这个......
  • 蓝桥杯 ALGO-54算法训练 简单加法(基本型)
    时间限制:1.0s内存限制:512.0MB问题描述首先给出简单加法算式的定义:如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为......
  • 蓝桥杯 ALGO-57算法训练 删除多余括号
    时间限制:1.0s内存限制:512.0MB问题描述从键盘输入一个含有括号的四则运算表达式,要求去掉可能含有的多余的括号,结果要保持原表达式中变量和运算符的相对位置不变,且与......
  • 蓝桥杯 ALGO-31算法训练 开心的金明
    时间限制:1.0s内存限制:256.0MB关键字:01背包动态规划问题描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,......
  • 蓝桥杯 ALGO-30算法训练 入学考试
    时间限制:1.0s内存限制:256.0MB关键字:0/1背包动态规划问题描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。......
  • 蓝桥杯 ALGO-29算法训练 校门外的树
    时间限制:1.0s内存限制:256.0MB关键字:区间处理问题描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的......
  • 蓝桥杯 ALGO-40算法训练 会议中心 (APIO 2009)
    时间限制:2.0s内存限制:512.0MB关键字:APIO2009会议中心Siruseri政府建造了一座新的会议中心。许多公司对租借会议中心的会堂很感兴趣,他们希望能够在里面举行会议。......