初识神经网络,入门级别的mnist手写数据,然后在kaggle上提交了一下,tensorflow ,卷积神经网络的cnn模型,准确率大概是0.98的样子,其中的网络结构参考了一些博客上的其他的博主,数据读取也有参考和借鉴,希望对大家的学习之路有所帮助
代码如下:
import numpy as np
import tensorflow as tf
import pandas as pd
# 加载数据集
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
# 把图片数据取出来,进行处理
x_train = train.iloc[:,1:].values
x_train = x_train.astype(np.float)
x_test = test.iloc[:,:].values
x_test = x_test.astype(np.float)
# 给到的图片灰度值在0-255,这里将图片的信息控制在0~1之间
x_train = np.multiply(x_train, 1.0/255)
x_test = np.multiply(x_test, 1.0/255)
# 计算图片的长和高,下面会用到
image_size = x_train.shape[1]
image_width = image_height = np.ceil(np.sqrt(image_size)).astype(np.uint8)
# 把数据集的标签结果取出来
labels_train = train.iloc[:,0].values
label_count = np.unique(labels_train).shape[0]
#写一个对Label进行one-hot处理的函数
def dense_to_ont_hot(labels_dense,num_classes):
num_labels = labels_dense.shape[0]
index_offset = np.arange(num_labels) * num_classes
labels_one_hot = np.zeros((num_labels,num_classes))
labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
return labels_one_hot
# 对Label进行one-hot处理
labels = dense_to_ont_hot(labels_train