当前位置: 首页 > news >正文

Kaggle-Digit Recognizer-(多分类+卷积神经网络CNN)

Digit Recognizer

题意:

给你每个图片的dataframe类型的数据,让你预测出每个图片可能是多少。

数据处理

1.首先把数据从dadaframe转换成numpy,数据类型改为float32,并且并且展开为1维的28×28×1的形状,也就是28宽28高灰色通道。并且都要/255,因为灰度值是0-255,把灰度值压缩成0-1。
2.把train的image和label分开,然后split成训练集合和验证集合。

建立模型:

Sequential(),构建顺序模型,选择按层顺序堆叠。
添加卷积层,32个卷积核,内核为3×3,线性处理。
添加池化层,池化窗口2×2,步长为2。
添加卷积层,32个卷积核,内核为3×3,线性处理。
添加池化层,池化窗口2×2,步长为2。

Flatten(),将二维特征图展平为一维向量。
128个全神经元,relu激活函数。
输出层10个神经元对应10个答案,softmax激活函数进行分类。

代码:
import sys
import pandas as pd
import torch
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Denseif __name__ == "__main__":data_train = pd.read_csv("train.csv")data_test = pd.read_csv("test.csv")X = data_train.drop(['label'],axis=1).values.reshape(-1, 28, 28, 1).astype('float32')Y = data_train['label'].valuesX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=2)X_train /= 255.0X_test /= 255.0data_test = data_test.values.reshape(-1, 28, 28, 1).astype('float32')/255.0model = Sequential()model.add(Conv2D(32, kernel_size=(3, 3), padding='valid', activation='relu', input_shape=(28, 28, 1)))model.add(MaxPooling2D(pool_size=(2, 2), strides=2, padding='valid'))model.add(Conv2D(32, kernel_size=(3, 3), padding='valid', activation='relu'))model.add(MaxPooling2D(pool_size=(2, 2), strides=2, padding='valid'))model.add(Flatten())model.add(Dense(128, activation='relu'))model.add(Dense(10, activation='softmax'))model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['accuracy'])history = model.fit(X_train, Y_train, epochs=10, validation_split=0.2)y_pred =model.predict(data_test).argmax(axis=1)anw = pd.DataFrame({"ImageId": range(1,len(y_pred)+1), "Label": y_pred})anw.to_csv("Submission.csv", index=False)

http://www.mrgr.cn/news/97957.html

相关文章:

  • react从零开始的基础课
  • linux下截图工具的选择
  • Python刷题笔记
  • PointNet++语义分割(semseg)训练自己的数据集并完成可视化并保存txt结果
  • 浅入浅出 DeepSeek R1
  • elasticSearch-搜索引擎
  • Kaggle-Housing Prices-(回归+Ridge,Lasso,Xgboost模型融合)
  • Web前端之Vue+Element实现表格动态不同列合并多行、localeCompare、forEach、table、push、sort、Map
  • C#容器源码分析 --- List
  • vue2添加背景水印-手动实现(无组件模式)
  • Python 实现的运筹优化系统数学建模详解(最大最小化模型)
  • Vue3+Vite+TypeScript+Element Plus开发-11.Pinia持久化处理
  • 【图书管理系统】深入解析基于 MyBatis 数据持久化操作:全栈开发图书管理系统获取图书列表接口(后端:计算图书页数、查询当前页展示的书籍)
  • 【特权FPGA】之AT24C02 IIC实现
  • 18. git pull
  • 深度学习基础--CNN经典网络之分组卷积与ResNext网络实验探究(pytorch复现)
  • OpenGL学习笔记(模型材质、光照贴图)
  • UniApp 实现兼容 H5 和小程序的拖拽排序组件
  • 15. git remote
  • 14. git clone