【FATE】MNIST手写数字识别——卷积神经网络

1 环境配置

操作系统:macOS Sierra 10.12.6
docker版本:19.03.8
FATE版本:单机版1.3
python版本:3.6.10
tensorflow:1.15.2
keras版本:2.3.0

2 准备数据

数据的准备与上传参考上一篇文章【FATE】MNIST手写数字识别——全连接网络
本次实践基于上次准备好的数据,不用再进行上传操作

3 编辑运行配置文件

3.1 搭建模型

首先进入python解释器:

python

由于 FATE 目前只接受一维数据输入,所以在模型搭建一开始我们添加一个Reshape层,用于把一维数据转换成卷积层需要接受的数据格式。

model.add(Reshape((28,28,1), input_shape=(784,)))

搭建卷积神经网络的全部过程:

import keras
from keras.models import Sequential
from keras.layers import Reshape, Dense, Conv2D, Flatten, MaxPooling2D
model = Sequential()
model.add(Reshape((28,28,1), input_shape=(784,)))
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(Flatten())
model.add(Dense(64, activation='relu'))
model.add(Dense(10, activation='softmax'))

得到json格式的模型:

json = model.to_json()
print(json)

拷贝输出的一长串 json,退出python解释器:

exit()

3.2 修改运行配置文件

进入配置文件,将刚刚输出的json格式的模型拷贝到algorithm_parameters:homo_nn_0:[$nn_define]位置:

vi examples/federatedml-1.x-examples/homo_nn/test_homo_nn_keras_temperate.json

修改超参数(可自行调整):

"batch_size": 64,
"optimizer": {
  "optimizer": "RMSprop",
  "learning_rate": 0.01
},
"early_stop": {
  "early_stop": "diff",
  "eps": 1e-5
},
"loss": "categorical_crossentropy",
"max_iter": 8

4 编辑DSL配置文件

使用自带的DSL配置文件,路径:

fate/examples/federatedml-1.x-examples/homo_nn/test_homo_nn_train_then_predict.json

5 开始训练任务

命令:

python fate_flow/fate_flow_client.py -f submit_job -c examples/federatedml-1.x-examples/homo_nn/test_homo_nn_keras_temperate.json -d examples/federatedml-1.x-examples/homo_nn/test_homo_nn_train_then_predict.json

6 结果

登录到FateBoard查看训练任务情况,通过log查看训练过程中损失和精度的变化情况。
在这里插入图片描述
损失达到了0.17左右,精度达到了0.97左右,效果好于之前的全连接网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值