1. import numpy as np 2. import tensorflow. keras as ka 3. import datetime 4. np. random. seed(0) 5. 6. (X_ train, y_train), (X test, y_test) = ka. datasets. mnist. load_data () 7. 8.#将数组转换成卷积层需要的格式 9. X_train = X train. reshape(X_ train. shapel0], 28, 28, 1). astype('float321) 10. X_test = X_test. reshape(X_test. shapef 0], 28, 28, 1). astype('float 321) 11. 12. X train = X train / 255 13. X test = X test / 255 14. 15. Ytrain = ka. utils.to categorical(y_train)#转化为独热编码 16. y_test = ka. utils. to_categorical (y_test) 17. num_classes = y_test. shape[1] # 10 18. 19.# CNN 模型 20. model = ka. Sequential([ 21 ka. layers. Conv2D (filters = 32, kernel_size = (5, 5), input_ shape = (28, 28, activation = 'relu'), 22. 23. 24. 25. 26. 27. 28. ]) 29. model. summary () 30. ka. layers. MaxPooling2D( pool_size = (2, 2)), ka. layers. Dropout (0. 2), ka. layers. Flatten(), ka. layers. BatchNormalization (), ka, layers. Dense (128, activation = 'relu'), ka. layers. Dense(num_classes, activation= 'softmax') 31. model, compile(loss = 'categorical _crossentropy', optimizer = 'adam' metrics = ['accuracy']) 32. 33. startdate = datetine.datetine.now() #荻取当前時間 34. model, fit(X train, y_train, validation_data = (X_test, y_test), epochs = 2, batch_size = 200, verbose = 2) 35. enddate = datetime. datetime. now ( ) 36. 37. print(“训练用时:" + strlenddate = startdate))
时间: 2024-03-11 17:44:57 浏览: 60
numpy-1.22.4+vanilla-cp311-cp311-win-amd64-whl
这段代码是一个使用卷积神经网络(CNN)对MNIST手写数字数据集进行分类的例子。代码中包括以下步骤:
1.导入必要的库,包括numpy、tensorflow.keras和datetime。
2.设置随机数种子。
3.加载MNIST数据集,将其分为训练集和测试集。
4.将数据转换为卷积层需要的格式,并将像素值归一化到0到1之间。
5.将标签转换为独热编码。
6.定义CNN模型,包括卷积层、池化层、扁平层、批量归一化层和全连接层。
7.编译模型,包括损失函数、优化器和评估指标。
8.训练模型,并记录训练时间。
9.输出训练时间。
需要注意的是,这段代码中的模型只训练了两个epochs,如果要得到更好的结果,可以增加训练轮数。
阅读全文