Keras应用第一章 — 手写数字数据预处理

第1关:Keras 模块介绍与导入

我们将在本关为大家讲解keras的基本情况,并手把手教大家如何导入keras包。


 # 请在此添加代码 完成本关任务
 # ********** Begin *********#
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.datasets import mnist
from keras.utils import np_utils
from keras.optimizers import SGD
import numpy as np
 # ********** End **********#

第2关:加载训练集和测试集

本关任务:请通过mnist模块的load_data方法编程实现:

把数据集中的训练数据和测试数据分别赋值给(X_train, Y_train) 和(X_test, Y_test)两组变量。
通过shape方法查看四个变量的维度。

import numpy as np
from Keras.datasets import mnist
from keras.models import Sequential
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.layers.core import Dense, Activation

def load_data():
    # 请通过mnist模块的load_data方法编程实现如下功能:
    # 把数据集中的训练数据和测试数据分别赋值给(x_train,y_train)和(x_test,y_test)两组变量
    # ********** Begin *********#
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    # ********** End **********#

    # 请通过shape方法查看四个变量的维度是否正确
    # 将答案写在return里,作为元组返回
    # ********** Begin *********#
    return(x_train.shape,x_test.shape,y_train.shape,y_test.shape)
    # ********** End **********#

def main():
    load_data()

if __name__ == '__main__':
    main()


第3关:重塑数据集的形状

本关任务:请你编写代码,使用shape和dtype方法查看x_train和x_test的形状和数据类型是否正确。

import numpy as np
from Keras.datasets import mnist
from keras.models import Sequential
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.layers.core import Dense, Activation

def preprocessing():
    (x_train,y_train),(x_test,y_test) = mnist.load_data()


    # 1.请通过 reshape() 方法将 x_train 和 x_test 的形状从3维将至2维(只对像素进行降维)
    # 结果重新赋值给变量 x_train 和 x_test
    # ********** Begin *********#
    x_train = x_train.reshape(60000,784)
    x_test = x_test.reshape(10000,784)
    # ********** End **********#

    # 2.请通过 astype() 方法将 x_train 和 x_test 的数据类型变为 float32
    # 结果重新赋值给变量 x_train 和 x_test
    # 分别将变量 x_train 和 x_test 的形状(shape)和类型(dtype)作为答案返回
    # ********** Begin *********#
    x_train = x_train.astype(np.float32)
    x_test = x_test.astype(np.float32)
    return(x_train.shape,x_test.shape,x_train.dtype,x_test.dtype)
    # ********** End **********#

def main():
    preprocessing()

if __name__ == '__main__':
    main()



第4关:归一化与 one-hot 编码

本关任务:请你编写代码,使用文中介绍的方法对x_train和x_test的数据进行归一化,并查看指定像素点的值;请使用utils模块的to_categorical方法编程实现对y_train和y_test的one-hot编码,并查看y_train前五行的one-hot编码。

import numpy as np
from Keras.datasets import mnist
from keras.models import Sequential
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.layers.core import Dense, Activation

def preprocessing():
    (x_train,y_train),(x_test,y_test) = mnist.load_data()
    x_train  = x_train.reshape(60000, 784)
    x_test   = x_test.reshape(10000, 784)
    x_train  = x_train.astype('float32')
    x_test   = x_test.astype('float32')

    # 1. 把 x_train 和 x_test 里面的像素点归一化到 0 ~ 1 之间的值,结果重新赋值给变量 x_train 和 x_test
    # 将 x_train 的第 2 个实例的第 100 个到 150 个像素点的值赋值给变量 a。
    # ********** Begin *********#
    x_train = x_train / 255
    x_test = x_test / 255
    a = x_train[1,99:150]
    # ********** End **********#

    # 2.基于 Keras 的 utils 模块中的 to_categorical 方法实现对 y_train 和 y_test 的 one-hot 编码
    # 并将结果重新赋值给变量 y_train 和 y_test
    # 将 y_train 的前 5 个实例的 one-hot 编码赋值给变量 b.
    # 将变量 a 和 b 作为答案返回。
    # ********** Begin *********#
    y_train = np_utils.to_categorical(y_train, 10)
    y_test = np_utils.to_categorical(y_test, 10)
    b = y_train[0:5]

    return(a,b)
    # ********** End **********#

def main():
    preprocessing()

if __name__ == '__main__':
    main()



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是对您的问题的回答: 首先,GAN指的是对抗生成网络,是一种由两个神经网络组成的模型:一个生成器和一个判别器。生成器负责生成新的数据样本,而判别器则试图区分出生成器生成的样本和真实数据样本之间的差别。 使用Keras构建GAN网络用于手写数字图像生成的步骤大致如下: 1. 准备数据集:需要准备手写数字图像的数据集,并将其分为训练集和测试集。 2. 定义生成器网络:生成器网络通常是一个多层的神经网络,其输入为噪声向量,输出为生成的图像。可以使用Keras的Sequential模型定义生成器网络。 3. 定义判别器网络:判别器网络也是一个多层的神经网络,其输入为图像,输出为一个二元分类结果,代表该图像是真实数据还是生成器生成的数据。同样使用Keras的Sequential模型定义判别器网络。 4. 编译GAN网络:将生成器和判别器组合起来形成一个GAN网络。编译GAN网络时需要注意的一点是,对于生成器而言,其误差评估的对象为GAN网络输出的结果,而非生成器的输出结果。 5. 训练GAN网络:将训练集输入生成器网络中进行训练,通过GAN网络在生成图像和判别真实图像之间不断博弈,从而使得生成器不断优化生成效果。训练GAN网络的过程中需要注意的一点是,由于GAN网络的训练目标是非常复杂的,因此需要进行较长时间的训练。 以上是基于Keras构建GAN网络用于手写数字图像生成的大致步骤。希望对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值