日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Kaggle-MNIST之路】CNN+改进过的损失函数+多次的epoch(四)

發(fā)布時間:2025/4/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Kaggle-MNIST之路】CNN+改进过的损失函数+多次的epoch(四) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡述

  • 上一個代碼

在看完很多版本的代碼,看了下,發(fā)現(xiàn)一個問題,隨著epoch的次數(shù)逐漸上升,精度會一定程度上上升。(有時候也不一定)

所以,懷疑自己的這個代碼還有改進的空間,所以,在提高了一下epoch的次數(shù)。但是要稍微降低一下Learning Rate。

邏輯解釋

  • 稍微降低一下Learning Rate的原因:
    假設是一個簡單的優(yōu)化問題,擔心LR太大,就直接滑動過去了。。

目前成績

  • 分數(shù):0.9790
  • 排名:1500+

代碼

import pandas as pd import torch.utils.data as data import torch import torch.nn as nnfile = './all/train.csv' LR = 0.0008class MNISTCSVDataset(data.Dataset):def __init__(self, csv_file, Train=True):self.dataframe = pd.read_csv(csv_file, iterator=True)self.Train = Traindef __len__(self):if self.Train:return 42000else:return 28000def __getitem__(self, idx):data = self.dataframe.get_chunk(100)ylabel = data['label'].as_matrix().astype('float')xdata = data.ix[:, 1:].as_matrix().astype('float')return ylabel, xdataclass CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.layer1 = nn.Sequential(# (1, 28, 28)nn.Conv2d(in_channels=1,out_channels=16,kernel_size=5, # 卷積filter, 移動塊長stride=1, # filter的每次移動步長padding=2,groups=1),# nn.BatchNorm2d(16),# (16, 28, 38)nn.ReLU(),nn.MaxPool2d(kernel_size=2)# (16, 14, 14))self.layer2 = nn.Sequential(nn.Conv2d(in_channels=16,out_channels=32,kernel_size=5,stride=1,padding=2),# nn.BatchNorm2d(32),nn.ReLU(),nn.MaxPool2d(kernel_size=2))self.layer3 = nn.Linear(32 * 7 * 7, 10)def forward(self, x):# print(x.shape)x = self.layer1(x)# print(x.shape)x = self.layer2(x)# print(x.shape)x = x.view(x.size(0), -1)# print(x.shape)x = self.layer3(x)# print(x.shape)return xnet = CNN()loss_function = nn.MultiMarginLoss() optimizer = torch.optim.Adam(net.parameters(), lr=LR) EPOCH = 5 for epo in range(EPOCH):mydataset = MNISTCSVDataset(file)train_loader = torch.utils.data.DataLoader(mydataset, batch_size=1, shuffle=True)for step, (yl, xd) in enumerate(train_loader):xd = xd.reshape(100, 1, 28, 28).float()output = net(xd)yl = yl.long()loss = loss_function(output, yl.squeeze())optimizer.zero_grad()loss.backward()optimizer.step()if step % 20 == 0:print('step %d-%d' % (step, epo), loss)torch.save(net, 'divided-net.pkl')

總結(jié)

到這里,就很容易搞懂了,為什么大家都喜歡單獨把模型的放在一個固定的文件夾中。現(xiàn)在也是理解了。
因為如果要改那個生成數(shù)據(jù)的py文件的話,重新加載是需要有復制這個類到另外生成數(shù)據(jù)的py文件下的。

這樣就很麻煩了,所以大家就會提出搞一個模型文件夾。然后只需要加載的時候的模型參數(shù)就好了。

此外,提高一下epoch的次數(shù),可以提高精度。但是理論上這個是有限的。
接下來只能改模型,改損失函數(shù),改讀取數(shù)據(jù)方式來提高了。

總結(jié)

以上是生活随笔為你收集整理的【Kaggle-MNIST之路】CNN+改进过的损失函数+多次的epoch(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人精品无码免费看夜聊软件 | 福利在线视频观看 | 午夜影视在线观看 | 中文字幕人妻一区二区在线视频 | 999久久久久久 | jizjiz中国少妇高潮水多 | 国产精品一品二品 | 亚洲影院一区 | 久久久亚洲精品无码 | 黄色片在线观看免费 | 99久久久无码国产精品免费麻豆 | 人人爽人人爽人人片 | 无人在线观看的免费高清视频 | 欧美人与禽性xxxxx杂性 | 免费黄色视屏 | 91福利片| 亚洲一二三级 | а√天堂www在线天堂小说 | 91av久久| av影片在线观看 | 久久免费大片 | 色香蕉视频 | 欧美一二级 | 亚洲一线av| 在线看黄色片 | 日韩少妇中文字幕 | 豆花免费跳转入口官网 | 久久久精选 | 大粗鳮巴久久久久久久久 | 88av网站| 男女啪啪十八 | 裸体美女免费视频网站 | 国产页| 成人久久精品 | 奇米四色7777 | 96精品 | 欧美在线观看一区二区三区 | 麻豆网站| 日韩精品一区在线播放 | 欧美性插动态图 | 国产簧片 | 色四月婷婷 | 国内精品视频在线播放 | 欧美综合在线一区 | 国产欧美一区二区三区鸳鸯浴 | 日本一区不卡 | 亚洲精品视频网 | 99色综合 | 成人午夜网站 | 丰满人妻妇伦又伦精品国产 | 国产稀缺真实呦乱在线 | 波多野结衣一区二区三区在线观看 | 日批免费观看 | 好男人天堂网 | 2021国产精品 | 国产高潮呻吟久久 | 亚洲涩综合 | 精品久久久在线观看 | 黄色小视频在线免费看 | 波多野结衣一二区 | 校园春色亚洲色图 | 日韩精品麻豆 | 蜜桃视频成人 | 脱女学生小内内摸了高潮 | 在线国产日韩 | 天天激情站 | 狠狠五月天 | 亚洲精品女人久久久 | 亚洲xx站| 国产精品久久国产精麻豆96堂 | 免费网站黄色 | 日韩毛片在线免费观看 | 中文无码一区二区三区在线观看 | 久久久精品福利 | 999久久久精品 | 乳女教师の诱惑julia | 九九精品免费视频 | 午夜免费av | 国产亚洲精品久 | 亚洲深夜| 国产精品羞羞答答在线 | 大乳村妇的性需求 | 国产精品伦一区二区三级视频 | 久久国产激情视频 | 干b视频在线观看 | 天天操夜夜骑 | 日日夜夜天天操 | 天天爽夜夜爽 | 欧美理论片在线观看 | 久久影音 | 嫩草av久久伊人妇女超级a | 人妻精油按摩bd高清中文字幕 | 成人影视在线看 | 日韩成人在线视频观看 | 国产成人综合视频 | 爱逼av| 岳奶大又白下面又肥又黑水多 | 网站av在线 | 九色视频在线播放 |