第十组Alpha冲刺(1/3)

过去完成的任务:

图像识别方面:

根据ResNet50网络的结构图,参考开源代码,完成的一部分网络构建

在查找数据集的过程中找到了使用python爬虫获取数据的方法(但还未决定是否使用)

目前遇到的问题:在图像识别的算法中尚未遇到大问题

代码

# conv_block部分

def conv_block(input_tensor, filters, stride):

# 分别接收卷积核的个数,即特征图的个数

filter1, filter2, filter3 = filters

# ==1== 正向传播部分

# 卷积层

x = layers.Conv2D(filter1, kernel_size=(1,1), strides=stride)(input_tensor)

# BN层

x = layers.BatchNormalization()(x)

# 激活层

x = layers.Activation('relu')(x)

# 卷积层

x = layers.Conv2D(filter2, kernel_size=(3,3), strides=(1,1), padding='same')(x)

# BN层

x = layers.BatchNormalization()(x)

# 激活函数

x = layers.Activation('relu')(x)

# 卷积层

x = layers.Conv2D(filter3, kernel_size=(1,1), strides=(1,1))(x)

# BN层

x = layers.BatchNormalization()(x)

# ==2== shotcut部分

# 卷积层

shotcut = layers.Conv2D(filter3, kernel_size=(1,1), strides=stride)(input_tensor)

# BN层

shotcut = layers.BatchNormalization()(shotcut)

# ==3== 两部分组合

x = layers.add([x, shotcut])

# 激活函数

x = layers.Activation('relu')(x)

# 返回结果

return x

# identity_block部分

def iden_block(input_tensor, filters):

# 接收卷积核的个数

filter1, filter2, filter3 = filters

# ==1== 正向传播

# 卷积层

x = layers.Conv2D(filter1, kernel_size=(1,1), strides=(1,1))(input_tensor)

# BN层

x = layers.BatchNormalization()(x)

# 激活函数

x = layers.Activation('relu')(x)

# 卷积层

x = layers.Conv2D(filter2, kernel_size=(3,3), strides=(1,1), padding='same')(x)

# BN层

x = layers.BatchNormalization()(x)

# 激活函数

x = layers.Activation('relu')(x)

# 卷积层

x = layers.Conv2D(filter3, kernel_size=(1,1), strides=(1,1))(x)

# BN层

x = layers.BatchNormalization()(x)

# ==2== 结合

x = layers.add([x, input_tensor])

# 激活函数

x = layers.Activation('relu')(x)

return x

# 本体

def resnet50(input_shape=[224,224,3], output_shape=10):

# 输入层

inputs = keras.Input(shape=input_shape) #[224,224,3]

# padding,上下左右各三层

x = layers.ZeroPadding2D((3,3))(inputs)

# 卷积层

x = layers.Conv2D(64, kernel_size=(7,7), strides=(2,2))(x) #[112,112,64]

# BN层

x = layers.BatchNormalization()(x) #[112,112,64]

# relu层

x = layers.Activation('relu')(x) #[112,112,64]

# 池化层

x = layers.MaxPool2D(pool_size=(3,3), strides=(2,2))(x) #[55,55,64]

# block1

x = conv_block(x, [64, 64, 256], stride=(1,1)) #[55,55,256]

x = iden_block(x, [64, 64, 256]) #[55,55,256]

x = iden_block(x, [64, 64, 256]) #[55,55,256]

# block2

x = conv_block(x, [128, 128, 256], stride=(2,2)) #[28,28,512]

x = iden_block(x, [128, 128, 256]) #[28,28,512]

x = iden_block(x, [128, 128, 256]) #[28,28,512]

x = iden_block(x, [128, 128, 256]) #[28,28,512]

# block3

x = conv_block(x, [256, 256, 1024], stride=(2,2)) #[14,14,1024]

x = iden_block(x, [256, 256, 1024]) #[14,14,1024]

x = iden_block(x, [256, 256, 1024]) #[14,14,1024]

x = iden_block(x, [256, 256, 1024]) #[14,14,1024]

x = iden_block(x, [256, 256, 1024]) #[14,14,1024]

x = iden_block(x, [256, 256, 1024]) #[14,14,1024]

# block4

x = conv_block(x, [512, 512, 2048], stride=(2,2)) #[7,7,2048]

x = iden_block(x, [512, 512, 2048]) #[7,7,2048]

x = iden_block(x, [512, 512, 2048]) #[7,7,2048]

# 平均池化层

x = layers.AveragePooling2D(pool_size=(7,7))(x) #[1,1,2048]

# Flatten层

x = layers.Flatten()(x) #[None,2048]

# 输出层,不做softmax

outputs = layers.Dense(output_shape)(x)

# 构建模型

model = Model(inputs=inputs, outputs=outputs)

# 返回模型

return model

# 创建restnet-50

model = resnet50()

# 查看网络结构

model.summary()

前端和后端开发方面:

暂定前端使用选定Web框架——SSM框架,并正在通过网上的资源学习如何搭建

SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。

使用IDEA配置了java web所需要的环境,使用tomcat进行网页的测试,配置了一个本地服务器用以进行网站的登录。编写了一些基础的xml文件和jsp文件进行环境变量的配置,然后进行网页的登录。在配置完环境后就可以使用tomcat进行网站的登录,观察前端的效果,由于刚开始进行开发,所以先制作了一个简单的登录界面

主干网络:EfficientNet-B3。最后一层添加maxpool,和avgpool进行拼接,增加特征表示。

数据增强:mixup)

遇到的问题:

主要集中于具体代码的编写和环境的配置。尤其是在网络上找到的现有资源配置不兼容,以及许多代码语句无法理解。以前对java web使用的次数不是很多,对于jsp中一些常用的函数有些遗忘,所以还需要进行学习,了解jsp和java web的工作流程,设计出具有正确逻辑的网页。

接下来的安排:

继续学习有关内容,尝试搭建好前端平台。现在只是进行了java web环境的搭建,为了使网页能顺利运行还需要和前端代码配合,使网页能够具有正确的逻辑。下一步准备制作出较为完整的网页并使其能够正确运行,并测试网页有没有Bug。

获得的收获:

在后端获得的收获:的开发过程中我学习了如何进行java web的配置,使用tomcat配置了服务器,同时学习了xml和html文件的编写。对于我接下来的开发有很大的帮助。

燃尽图:

第十组Alpha冲刺(1/3)_第1张图片

 

蓝线为计划完成任务数,黑线为实际完成任务数,绿色为剩余任务数。

会议照片

第十组Alpha冲刺(1/3)_第2张图片

 

你可能感兴趣的:(python,深度学习,开发语言)