神经网络学习之路:1-LeNet5

LeNet卷积神经网络的理解并对手势数据集识别

LeNet:《Gradient-Based Learning Applied to Document Recognition》
论文链接:http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf
LeNet卷积神经网络结构
图为LeNet网络结构
源码:https://github.com/DoubleYuanL/LeNet5.git
附带数据集
由结构图可知:
LeNet卷积神经网络组成:2个卷积+2个下采样(池化)+3个全连接层组成。
更加细化一些:
卷积层:卷积核大小(5x5),步幅stride = 1 ,以及激活函数,两层卷积卷积核大小,步幅,激活函数都相同。
下采样:采用(2x2)的输入域,步幅stride = 2 (采用平均池化)
全连接层:(也就是BP网络)
全连接层一:生成120个节点
全连接层二:生成84个节点
全连接层三:生成分类数量的节点
详细代码操作过程:
训练:
1:加载数据集
将h5文件类型的图片数据转化为numpy类型,进行处理。

#load_dataset
def load_dataset():
	X_train_orig , Y_train_orig , X_test_orig , Y_test_orig , classes = cnn_utils.load_dataset()
	return X_train_orig , Y_train_orig , X_test_orig , Y_test_orig 

2:初始化数据集
将输入数据进行归一化处理以及label标签进行one-hot处理

#init_dataset
def init_dataset(X_train_orig , Y_train_orig , X_test_orig , Y_test_orig ):
	X_train = X_train_orig/255.
	X_test = X_test_orig/255.
	Y_train = cnn_utils.convert_to_one_hot(Y_train_orig, 6).T
	Y_test = cnn_utils.convert_to_one_hot(Y_test_orig, 6).T
	print ("number of training examples = " + str(X_train.shape[0]))
	print ("number of test examples = " + str(X_test.shape[0])) 
	print ("X_train shape: " + str(X_train.shape)) 
	print ("Y_train shape: " + str(Y_train.shape))
	print ("X_test shape: " + str(X_test.shape))
	print ("Y_test shape: " + str(Y_test.shape))
	return X_train, Y_train, X_test, Y_test

3:创建占位符

#create_placeholder
def create_placeholder(n_H0, n_W0, n_C0, n_y):
	X = tf.placeholder(tf.float32, [None, n_H0, n_W0, n_C0], name = "X")
	# X = tf.placeholder(tf.float32, [None, n_H0*n_W0*n_C0], name = "X")
	Y = tf.placeholder(tf.float32, [None,n_y], name = "Y")
	keep_prob = tf.pla
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DoubleYuanL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值