第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()