Beta兑现(3/3)

小组成员使用Flask框架将Python的深度学习算法部署到Web应用,实现了前端与后端的分离。别鹏飞基于ResNet50构造网络并训练,得到85%-90%的识别准确率。吕思毅讨论了神经网络训练中的epoch和batchsize概念。李泊林负责前端部署,正在优化网页设计。目前挑战包括提高模型准确率和前后端的无缝结合。
摘要由CSDN通过智能技术生成

小组实验进展报告

已完成的工作:

关子琦:

使用了flask框架,将python的深度学习算法部署到web网页中。实现了前端与后端的分离。

完善了前后端的一些bug。

改善了代码,提高了后端处理数据的速度。

别鹏飞:

根据ResNet50网络的结构图,参考开源代码,完成了网络构建,根据已有的10位作家的作品集完成了模型的训练,得到了较好的识别准确率。

吕思毅:

神经网络的训练

梯度下降法

学习率:步长更大 = 学习率更高

误差函数不断减小。

如果训练数据过多,无法一次性将所有数据送入计算。

现将数据分成几个部分:batch。

分多个batch,逐一送入计算训练

Epoch

一个epoch,表示:所有的数据送入网络中,完成了一次前向计算+反向传播的过程。

由于一个epoch常常太大,分成几个小的baches.

将所有数据迭代训练一次是不够的,需要反复多次才能拟合、收敛。

在实际训练时、将所有数据分成多个batch,每次送入一部分数据。

使用单个epoch更新权重不够。

随着epoch数量的增加,权重更新迭代的次数增多,曲线从最开始的不拟合状态,进入优化拟合状态,最终进入过拟合。

epoch如何设置:大小与数据集的多样化程度有关,多样化程度越强,epoch越大。

batchsize

每个batch中:训练样本的数量。

batch size大小的选择也很重要,最优化网络模型的性能+速度。

当数据量较小,计算机可以承载只有1个batch的训练方式时, 收敛效果会好。

mini-batch:将所有数据分为若干个batch,每个batch包含一部分训练样本。

iterations

完成一次epoch需要的batch个数

batch numbers就是iterations.

分为了多少个batch? : 数据总数/batch_size

训练10轮之后的结果:

李泊林:

近一段时间由于自己身体的原因修养了很久,进度有所拖延,但是在近期恢复的过程中也逐渐赶上了大家的进度。前端的部署和设计已经完成。

计划的工作:

关子琦:

检查flask框架中有没有Bug,同时测试一下数据由前端传递给后端后对识别准确率有没有影响。

别鹏飞:

不断调参,提高准确率

李泊林:

在细节方面还在逐渐修改,比如网页部分滚动条的设计以及部分区域显示效果不太好,在积极努力的调整,还有一些地方的交互感觉不太合理。同时准备应对不同的情况如果有时间的话打算多细化设计一下前端的显示以求达到最佳的使用效果。

遇到的困难:

别鹏飞:

当前采用的网络准确率在85%-90%之间,似乎并不够高

李泊林:

目前比较大的问题就是在前后端的结合上,如何让我们的网页和相关功能的实现完美的结合,同时让用户使用方便。

个人收获:

关子琦.

了解了flask框架的使用。

熟悉了前后端分离的概念。

拥有了改进代码、调试bug的一些经验。

别鹏飞.

深入了解了resnet50网络模型的结构并根据资料进行了模型组网,完成了网络的实现并得到了不错的识别准确率,也了解了许多其他网络模型,包括一些复杂网络,如densenet201。通过这次实验,我对神经网络模型尤其是经典的resnet50有了较好地理解。

代码:(网络模型)

#卷积层2(包括卷积,池化,激活)

layer_conv2 = create_convolutional_layer(input=layer_conv1,

num_input_channels=num_filters_conv1,

conv_filter_size=filter_size_conv2,

num_filters=num_filters_conv2)

#卷积层3(包括卷积,池化,激活)

layer_conv3= create_convolutional_layer(input=layer_conv2,

num_input_channels=num_filters_conv2,

conv_filter_size=filter_size_conv3,

num_filters=num_filters_conv3)

#把上面三个卷积层处理后的结果转化为一维向量,提供给全连层

layer_flat = create_flatten_layer(layer_conv3)

#全连接层1

layer_fc1 = create_fc_layer(input=layer_flat,

num_inputs=layer_flat.get_shape()[1:4].num_elements(),

num_outputs=fc_layer_size,

use_relu=True)

#全连接层2

layer_fc2 = create_fc_layer(input=layer_fc1,

num_inputs=fc_layer_size,

num_outputs=num_classes,

use_relu=False)

燃尽图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值