kaggle没有notebook的文件夹系统让我很不满意,决定以后把自己练习的过程都搬上csdn。

目录

1.引入库

2.准备数据集

3.定义模型

4.调用优化器和损失函数

5.run 训练集

6.用训练集的参数run 测试集


1.引入库

import numpy as np
import pandas as pd
import torch
from torch.utils.data import Dataset #抽象类 被继承
from torch.utils.data import DataLoader #加载数据

2.准备数据集

class TitanicDataset(Dataset):def __init__(self,filepath):xy = pd.read_csv(filepath) self.len = xy.shape[0] # xy.shape()可以得到xy的行列,[0]取行,[1]取列#选取需要的特征feature = ["Pclass", "Sex", "SibSp", "Parch", "Fare"]# xy[feature]的类型是DataFrame,先进行独热表示,然后转成array,最后转成tensor用于进行矩阵计算。self.x_data = torch.from_numpy(np.array(pd.get_dummies(xy[feature]))) self.y_data = torch.from_numpy(np.array(xy["Survived"]))def __getitem__(self,index): #魔法函数,支持 dataset[index]return self.x_data[index],self.y_data[index]def __len__(self): #魔法函数 支持len()return self.len# 实例化自定义类,并传入数据地址
dataset = TitanicDataset('../input/titanic/train.csv')# num_workers是否要进行多线程服务,num_worker=2 就是2个进程并行运行
# 采用Mini-Batch的训练方法
train_loader = DataLoader(dataset = dataset,batch_size = 32,shuffle = True,num_workers=2)#双线程

3.定义模型

class Model(torch.nn.Module): # 设置要从torch神经网络模块中要继承的模型函数def __init__(self):super(Model,self).__init__() # 对继承于torch.nn的父模块类进行初始化self.linear1 = torch.nn.Linear(6,3)#输入6 输出3;五个特征转化为了6维,因为get_dummies将性别这一个特征用两个维度来表示,即男性[1,0],女性[0,1]self.linear2 = torch.nn.Linear(3,1)self.sigmoid = torch.nn.Sigmoid() #调用nn下的模块 作为运算模块#正向传播    def forward(self,x): x= self.sigmoid(self.linear1(x))x= self.sigmoid(self.linear2(x))return x#预测函数 用在测试集def predict(self,x):with torch.no_grad(): #上下文管理器,被该语句 wrap 起来的部分将不会track 梯度。x=self.sigmoid(self.linear1(x))x=self.sigmoid(self.linear2(x))y=[]# 根据二分法原理,划分y的值for i in x:if i >0.5:y.append(1)else:y.append(0)return ymodel = Model()

4.调用优化器和损失函数

criterion = torch.nn.BCELoss()
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)

5.run 训练集

# 防止windows系统报错
if __name__ == '__main__':# 采用Mini-Batch的方法训练要采用多层嵌套循环# 所有数据都跑100遍for epoch in range(100):# data从train_loader中取出数据(取出的是一个元组数据):(x,y)# enumerate可以获得当前是第几次迭代,内部迭代每一次跑一个Mini-Batchfor i, data in enumerate(train_loader, 0):#准备数据 inputs获取到data中的x的值,labels获取到data中的y值inputs, labels = datainputs = inputs.float()labels = labels.float()#正向传播y_pred = model(inputs)y_pred = y_pred.squeeze(-1) ## 前向输出结果是[[12],[34],[35],[23],[11]]这种,需要将这个二维矩阵转换成一行[12,34,35,23,11]loss = criterion(y_pred, labels)print(epoch, i, loss.item())#反向传播optimizer.zero_grad()loss.backward()#更新optimizer.step()

6.用训练集的参数run 测试集

#测试集数据准备
test_data = pd.read_csv('../input/titanic/test.csv') #读取数据
feature = ["Pclass", "Sex", "SibSp", "Parch", "Fare"] #和训练集保持特征的一致性 选取相同的项
test = torch.from_numpy(np.array(pd.get_dummies(test_data[feature]))) #与训练集保持一致# 进行预测,并将结果以CSV格式保存
y = model.predict(test.float()) #浮点数
outputs = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived': y})
outputs.to_csv('predict_titantic', index=False)  # index=False 代表不保存索引#观察一下结果
outputs.head()

PyTorch深度学习(B站刘二大爷)第八讲作业——Kaggle网站泰坦尼克号Titanic相关推荐

  1. 《PyTorch深度学习实践》刘二大人 第2讲 线性模型——使用双层for循环完成课后作业

    一.课堂代码 import numpy as np import matplotlib.pyplot as pltx_data = [1.0,2.0,3.0] y_data = [2.0,4.0,6. ...

  2. PyTorch深度学习入门与实战(案例视频精讲)

    作者:孙玉林,余本国 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2020-07-01 PyTorch深度学习入门与实战(案例视频精讲)

  3. PyTorch深度学习实践(b站刘二大人)P6讲 逻辑斯蒂回归 Logistic Regression

    1.分类任务的数据集 ① The MNIST Dataset:handwritten digits Training set: 60,000 examples, Test set: 10,000 ex ...

  4. PyTorch 深度学习实践 GPU版本B站 刘二大人第11讲卷积神经网络(高级篇)GPU版本

    第11讲 卷积神经网络(高级篇) GPU版本源代码 原理是基于B站 刘二大人 :传送门PyTorch深度学习实践--卷积神经网络(高级篇) 这篇基于博主错错莫:传送门 深度学习实践 第11讲博文 仅在 ...

  5. Pytorch 深度学习实战教程(二):UNet语义分割网络

    本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善. 一 ...

  6. Pytorch深度学习实战教程(二):UNet语义分割网络

    1 前言 本文属于Pytorch深度学习语义分割系列教程. 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章< ...

  7. Pytorch深度学习实践(b站刘二大人)P10讲 (CNN卷积神经网络基础篇)

    1.全连接网络 指的是网络里面用的都是线性层,如果一个网络全都由线性层串行连接起来,就叫做全连接网络 在线性层里面输入和每一个输出值之间都存在权重,即每一个输入节点都要参与到下一层输出节点的计算上,这 ...

  8. pytorch adagrad_【学习笔记】Pytorch深度学习—优化器(二)

    点击文末 阅读原文,体验感更好哦! 前面学习过了Pytorch中优化器optimizer的基本属性和方法,优化器optimizer的主要功能是 "管理模型中的可学习参数,并利用参数的梯度gr ...

  9. 【PyTorch深度学习实践】P9 kaggle otto商品分类作业(含注释)

    <PyTorch深度学习实践>-刘二大人 Otto Group Product Classification作业 将商品进行十分类,输入为93个特征10个类别的商品数据集,输出为预测数据集 ...

  10. 【Pytorch深度学习实践】B站up刘二大人之SoftmaxClassifier-代码理解与实现(8/9)

    这是刘二大人系列课程笔记的倒数第二个博客了,介绍的是多分类器的原理和代码实现,下一个笔记就是basicCNN和advancedCNN了: 写在前面: 这节课的内容,主要是两个部分的修改: 一是数据集: ...

最新文章

  1. Ansible05-部署文件
  2. 深度学习的seq2seq模型——本质是LSTM,训练过程是使得所有样本的p(y1,...,yT‘|x1,...,xT)概率之和最大...
  3. glide 下载golang.org包问题
  4. python开发的前景_python开发前景怎么样
  5. 多款 Linux 发行版悄然放弃支持 PowerPC
  6. vb.net2019-多线程并行计算(6)
  7. 网络安全系列之三十五 缓冲区溢出
  8. 记录我对Padding Oracle攻击的分析和思考之抄写
  9. SAP Data Intelligence API执行出错的排错之道
  10. gesturedetector.java_android使用gesturedetector手势识别示例分享
  11. 不止代码:最长上升序列
  12. 5g pdu session_运营商下架4G套餐,用户被5G!
  13. 解决“计划任务不存在的问题”方法
  14. Python3学习阶段记录(Python3.8安装)
  15. 18. JavaScript event 对象
  16. mysql客户端navicat连接数据库
  17. 电厂的计算机人员职位结构简图,我们电厂汽轮机结构示意图(老师傅整理)
  18. 在EXCEL中生成服从三角分布随机数的方法
  19. 基于词频的文件相似度
  20. SQL计算个人所得税函数

热门文章

  1. Aviary集成心得
  2. 预约制成为汽车年检新常态
  3. 中国居民身份证号码检验程序
  4. Excel怎么将一列数据合并到一个单元格中
  5. 通过RDA5807制作一个收音机
  6. py3_VSCode 配置 Python 环境以及初识 Python 正则表达式
  7. 手把手教你给小米游戏本安装macOS
  8. 我的编程经历与我所热爱的游戏服务端开发
  9. 华为云服务登录显示服务器异常,云服务器异常登录应该怎么处理
  10. git 创库命令使用