8f4db5ef53
Signed-off-by: HZM <13197565+hzm6667@user.noreply.gitee.com>
297 lines
55 KiB
Plaintext
297 lines
55 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"id": "026c1ade",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import tensorflow as tf\n",
|
|
"from tensorflow import keras\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import numpy as np\n",
|
|
"import time"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 26,
|
|
"id": "3b9bdf4d",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plt.rcParams['font.sans-serif'] = ['SimHei']\n",
|
|
"plt.rcParams['axes.unicode_minus'] = False"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"id": "80f4173a",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"(x_train, y_train) , (x_test, y_test) = keras.datasets.fashion_mnist.load_data()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"id": "fe9e1752",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"x_train = x_train / 255.0\n",
|
|
"x_test = x_test / 255.0"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 29,
|
|
"id": "6eb0940f",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"y_train = keras.utils.to_categorical(y_train, 10)\n",
|
|
"y_test = keras.utils.to_categorical(y_test, 10)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 30,
|
|
"id": "5973d007",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"x_train = x_train.reshape((x_train.shape[0], x_train.shape[1], x_train.shape[2], 1))\n",
|
|
"x_test = x_test.reshape((x_test.shape[0], x_test.shape[1], x_test.shape[2], 1))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 31,
|
|
"id": "7c933633",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"model = keras.Sequential()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 32,
|
|
"id": "9b674a35",
|
|
"metadata": {
|
|
"scrolled": true
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"model.add(keras.layers.Conv2D(32,(3,3), input_shape=(28, 28, 1), activation='relu'))\n",
|
|
"model.add(keras.layers.MaxPool2D((2, 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 33,
|
|
"id": "5c189569",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"model.add(keras.layers.Conv2D(64,(3,3), activation='relu'))\n",
|
|
"model.add(keras.layers.MaxPool2D((2, 2)))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 34,
|
|
"id": "903311cf",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"model.add(keras.layers.Flatten())\n",
|
|
"model.add(keras.layers.Dense(128, activation='relu'))\n",
|
|
"model.add(keras.layers.Dropout(0, 5))\n",
|
|
"model.add(keras.layers.Dense(10, activation='softmax'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 35,
|
|
"id": "eeda8850",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 36,
|
|
"id": "8f6dc95b",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"开始模型训练\n",
|
|
"Epoch 1/10\n",
|
|
"1875/1875 [==============================] - 28s 14ms/step - loss: 0.4528 - accuracy: 0.8358 - val_loss: 0.3689 - val_accuracy: 0.8680\n",
|
|
"Epoch 2/10\n",
|
|
"1875/1875 [==============================] - 27s 15ms/step - loss: 0.3023 - accuracy: 0.8888 - val_loss: 0.3056 - val_accuracy: 0.8913\n",
|
|
"Epoch 3/10\n",
|
|
"1875/1875 [==============================] - 26s 14ms/step - loss: 0.2561 - accuracy: 0.9043 - val_loss: 0.2689 - val_accuracy: 0.9015\n",
|
|
"Epoch 4/10\n",
|
|
"1875/1875 [==============================] - 29s 16ms/step - loss: 0.2214 - accuracy: 0.9182 - val_loss: 0.2704 - val_accuracy: 0.9005\n",
|
|
"Epoch 5/10\n",
|
|
"1875/1875 [==============================] - 29s 16ms/step - loss: 0.1958 - accuracy: 0.9272 - val_loss: 0.2759 - val_accuracy: 0.9003\n",
|
|
"Epoch 6/10\n",
|
|
"1875/1875 [==============================] - 26s 14ms/step - loss: 0.1731 - accuracy: 0.9349 - val_loss: 0.2715 - val_accuracy: 0.9018\n",
|
|
"Epoch 7/10\n",
|
|
"1875/1875 [==============================] - 26s 14ms/step - loss: 0.1523 - accuracy: 0.9427 - val_loss: 0.2556 - val_accuracy: 0.9090\n",
|
|
"Epoch 8/10\n",
|
|
"1875/1875 [==============================] - 26s 14ms/step - loss: 0.1338 - accuracy: 0.9496 - val_loss: 0.2787 - val_accuracy: 0.9103\n",
|
|
"Epoch 9/10\n",
|
|
"1875/1875 [==============================] - 26s 14ms/step - loss: 0.1183 - accuracy: 0.9555 - val_loss: 0.2888 - val_accuracy: 0.9108\n",
|
|
"Epoch 10/10\n",
|
|
"1875/1875 [==============================] - 27s 14ms/step - loss: 0.1051 - accuracy: 0.9606 - val_loss: 0.3004 - val_accuracy: 0.9096\n",
|
|
"模型训练结束 用时:272.3966s\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(\"开始模型训练\")\n",
|
|
"t1 = time.time()\n",
|
|
"model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))\n",
|
|
"t2 = time.time()\n",
|
|
"time1 = t2 - t1\n",
|
|
"print('模型训练结束 用时:{0:0.4f}s'.format(time1))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 37,
|
|
"id": "1b6dec52",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"313/313 [==============================] - 2s 7ms/step - loss: 0.3004 - accuracy: 0.9096\n",
|
|
"模型的准确率为: 0.909600019454956\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"_, acc = model.evaluate(x_test, y_test)\n",
|
|
"print('模型的准确率为:', acc)\n",
|
|
"\n",
|
|
"index = np.random.randint(0, x_test.shape[0])\n",
|
|
"image = x_test[index]\n",
|
|
"label = np.argmax(y_test[index])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 38,
|
|
"id": "4b006d18",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1/1 [==============================] - 0s 145ms/step\n",
|
|
"预测的类别是: 5\n",
|
|
"1/1 [==============================] - 0s 32ms/step\n",
|
|
"预测的类别是: 9\n",
|
|
"1/1 [==============================] - 0s 36ms/step\n",
|
|
"预测的类别是: 1\n",
|
|
"1/1 [==============================] - 0s 36ms/step\n",
|
|
"预测的类别是: 1\n",
|
|
"1/1 [==============================] - 0s 36ms/step\n",
|
|
"预测的类别是: 6\n",
|
|
"1/1 [==============================] - 0s 32ms/step\n",
|
|
"预测的类别是: 4\n",
|
|
"1/1 [==============================] - 0s 32ms/step\n",
|
|
"预测的类别是: 1\n",
|
|
"1/1 [==============================] - 0s 32ms/step\n",
|
|
"预测的类别是: 9\n",
|
|
"1/1 [==============================] - 0s 36ms/step\n",
|
|
"预测的类别是: 2\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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Cd1www360pe+FNM2A+gfPQFAb/QFRCstzHQLAAAA8BW+GAwAAAD4DJMAAAAAwGeYBAAAAAA+wyQAAAAA8BkmAQAAAIDPxDUidN++fVq5cqVqamq0atUqfe1rX1NaWprncl1dXTp27Jjy8/MH9PuAH4XDYTU1NemCCy6IxLIlOnoCMLToCwC6G1RPCMdJW1tbeNKkSeG77747XFNTE/7kJz8Z/v73vz+gZevr68OSuHHjNoBbfX19vA7bIUVP4Mbtg7vRF7hx49b9NpCeELfrBDz77LO64447dOTIEeXm5mrPnj363Oc+p1/96leeyzY2NkYuW+1n69evd9a6X867P01NTVGNGcsFRjo6Opy10aNHO2uZme43oH72s5+ZY56/1LifnTlzJikutU5PAD449AX/mDFjhrN20UUXmcseP37cWbviiiucte9973veG+aQn5/vrFnnNjfffLOz5nXO8+abbzpr+/bti2p7ks1AekLcPg60Z88eVVRUKDc3V5I0c+ZMVVdX9/u7oVCox8lntCewqSY7O9tZs064pfcv2T1YscwBrbeZAoGAs2ZNAjIyMqLeHr9IlrfB6QnAB4e+4B/W38msrKyolx0xYkTU22SxXptWzdqeWB7ncBwr1phx+l/8oMY8L24fIAwGgyovL+8xeEZGhk6fPt3nd6uqqlRYWBi5TZw4MV6bASBB0BMA9EZfABJH3CYBmZmZff77m52drZaWlj6/u379ejU2NkZu9fX18doMAAmCngCgN/oCkDji9nGgkpKSPp+zampq6vftnEAgYH5cBEDyoycA6I2+ACSOuE0C5s6dq82bN0d+rqurUygUUklJSbyGSAnW25nTp0931k6ePGmud9y4cVFtTyyfsbS+p9Dc3OysWd99GDNmTNTbY33XwOs7FYg/egKA3hK1LwzFZ7bPf+/B5eMf/7izdvfddztrixYtctbWrFljjml9Mfib3/yms3b77bc7ax/60IfMMf/2b//WWXv77bedtQkTJjhr27dvN8e0zqf+6q/+yll79tlnnbX//M//NMe0zqes19BwfF/gvLh9HGjevHkKBoPasmWLJGnjxo1auHAhX/QEfIqeAKA3+gKQOOL2TkBmZqYee+wxLVu2TOvWrVN6erpefPHFeK0eQJKhJwDojb4AJI64XjH4hhtuUG1trXbv3q2KigqNGjUqnqsHkGToCQB6oy8AiSGukwBJKisr0+LFi+O9WgBJip4AoDf6AjD84vadAAAAAADJgUkAAAAA4DNx/zgQbN2vlNibFQPa39UUu4s2HrOtrc1Zs6I8vZaNdszS0lJzTAsxoACAaEQbxXjnnXc6a2+++aa57L333uusXXvttc6aFbn53e9+1xzzoosuctb+6Z/+yVn7yEc+4qyNHDnSHHPWrFnOWkNDg7PW3wXkznv00UfNMa341Z/97GfO2nXXXeesffaznzXHtC5mZ0WPRhsf6rXsQPBOAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwGSYBAAAAgM9wnYAP2OTJk5211tZWZ22oMvCtawF4jRntstZ1Ai688EJzTADDZ8SIEWb9b/7mb5y1l19+2Vl77rnnot6mZGJll3v1vsceeyzem+MrGRkZZr2zs9NZmzJlirM2adIkZ+3xxx83xzxx4oSz9stf/tJZq6qqMtdr+fGPf+ysjR071ln7n//5H2fNK8vectVVVzlr//zP/xz1enft2uWs3X333c7aG2+84awdPnzYHPPiiy921qzXUG1trbPGdQIAAAAAxBWTAAAAAMBnmAQAAAAAPsMkAAAAAPAZJgEAAACAzzAJAAAAAHyGiNAPWFFRkbOWlZUV9XozM6N7KocqejRa0T4OAAOXnu7+/09XV5ezdv3115vrve2225y1O++801mzYgsffPBBc0wrdvns2bPOmhUZ2dzcbI5pLfvWW285a1ZE6NGjR80xEZtYohT/6I/+yFmrrq521mbPnm2u9xvf+IazZr0GrXOFT37yk+aYVoylFQFcWlpqrtdixajW1NQ4a1aEqtXDJGnChAnOWmFhobPW0tLirJWVlZljHjt2zFmbNm2as2ZFhMYaAeqFdwIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwmbhNAtauXau0tLTIberUqfFaNYAkRV8A0B09AUgccctj3LVrl7Zv364rr7xSkh2h5mfFxcXDvQkDNhxxnSNHjjTrVsTqmTNn4rsxiBl9ITFZMaCWKVOmmPWmpqaoxrRiPr/4xS+aY5aXlztrVkSoFbMYCATMMS1WHzp16pSzVldXF/WYyWS4ekK0r3lJGjdunLP2xhtvOGsXXXSRud53333XWbPiu3Nycpw1r0jd9vb2qMbcvn27s5aWlmaOOXr0aGdt165dzpr12rCeE0l69NFHnbV/+7d/c9auuuoqZ62trc0c0zJq1KiolhvqiNC4nOV1dHRo//79mjdvnudJHAB/oC8A6I6eACSWuHwc6PXXX1dXV5dmzZqlnJwcLVq0SIcPH47HqgEkKfoCgO7oCUBiicskoLq6WjNmzNCTTz6pvXv3KjMzU3fddZfz90OhkILBYI8bgNQymL5ATwBSH+cKQGKJy8eBli9fruXLl0d+fvTRR1VeXq5gMKiCgoI+v19VVaUNGzbEY2gACWowfYGeAKQ+zhWAxDIkEaGlpaXq6urS8ePH+62vX79ejY2NkVt9ff1QbAaABGL1BXoC4D+cKwDDKy6TgHXr1mnr1q2Rn3fu3Kn09HRNnDix398PBAIqKCjocQOQWgbTF+gJQOrjXAFILHH5ONDll1+u+++/X2PHjlVnZ6fWrFmj2267Tbm5ufFYfUrJz8931lpbW501K7rLq25FfVo1rzGj3Z5z585FtT2SHTVGRGhioS8MLyu2L9rYucrKyqjHtI7tgwcPOmvHjh0zx7R6TWdnp7OWnZ3trFkxipIdIRoKhZw167UfS4RlskjknlBYWOisWX+z3nnnHWdt2rRp5pjW36z0dPf/aD/ykY84a5dddpk5pvU6s8Z89dVXnTWvfvL73//erLv8+Mc/dta8HufnPvc5Z82KJG5ubnbWxo8fb475hz/8wVmzelFpaamzZr2+4iEuk4AVK1Zo//79Wrp0qTIyMrRixQpt3LgxHqsGkKToCwC6oycAiSVuV4OqqqpSVVVVvFYHIAXQFwB0R08AEseQfDEYAAAAQOJiEgAAAAD4DJMAAAAAwGeYBAAAAAA+wyQAAAAA8Jm4pQNhYKxs6pMnTzprXvn5icbK7rZyeL2uTeC6qIwk1dTUeG8Y4BPRXifA6lEjRowwx7Ty9a3tOXXqlLNm5bdLUkZGhrNm9U0r69/KS5eknJwcZ62hocFZmzRpkrM21HngsF188cXOmvX6tF7XxcXF5phWdvyoUaOctbfeestZ+8QnPmGOuXDhQmft5ptvdtbGjRvnrJWVlZljWpn+1pgLFixw1qysf8k+V7D6gnXsT5061Rzz7bffdtaampqcNaufDDXeCQAAAAB8hkkAAAAA4DNMAgAAAACfYRIAAAAA+AyTAAAAAMBnmAQAAAAAPpNcuZMpwIrfswxHRKhXXKe1TSNHjnTWWltbnTUrPlSScnNzzTqA93R1dUW13Gc+8xlnLS8vz1y2ra3NWTt37pyz1tjY6KxZ0YSSFAqFnDUr0tTaP1aEqiSdOXPGWZs9e7azNm3aNGetvLzcHPM3v/mNWUdsrNdZMBh01qy/Z1YEqGS/Pq0IW2tbX375ZXPMX/7yl87aF7/4RWfNir/csmWLOWa0rOPsoosuMpe1olujPXexomIlu/9Z25Ofn2+udyjxTgAAAADgM0wCAAAAAJ9hEgAAAAD4DJMAAAAAwGeYBAAAAAA+wyQAAAAA8BkiQj9gWVlZzpoVNeYVEWrVrZitoqKiqMe04rCsZa2aVyypFd8FIHa33367s3b27FlzWSsCuba21lnLyMiIqibZUZ9Wv7Ui+6yeKUnTp0931i699FJnzep9H/7wh80xn3rqKbOO2JSVlTlrJ0+edNas2EgrvlayoyGt1/Xo0aOdNa+/kQcOHHDWrHjRf/7nf3bWSktLzTF/9atfOWvbtm1z1qxoVi/jx4931qzj0NrvR44cMce0+p91fmc9n0ONdwIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwGSYBAAAAgM8MOiK0oaFBc+fO1QsvvKBJkyZJkvbt26eVK1eqpqZGq1at0te+9jUzfg39s+LsvHhFa7pYEWVW3JUk1dXVOWtWBJf1OGOJQsXwoS988Lz2ZTgcdtYuueQSZ82KuDx48KA55rhx45y1t956y1mzYkCtx+FVHzFihLPW2dnprFnxx5K9j6z1WhGrH/vYx8wxk02y9YRRo0Y5a1a8o/X6S0+3/8+al5fnrFnRo9bfba942927dztrlZWVzpoVuTl79mxzTIv1N/2ee+5x1qwoY0maP3++s2btdyti1ev8w+pj586di2rMoTaodwIaGhpUWVmpQ4cORe4LhUK6/vrrNWfOHO3atUvV1dV64okn4ryZABIVfQFAd/QEIDkMahJwyy236NZbb+1x33PPPafGxkY98sgjmjJlijZu3KjHH388rhsJIHHRFwB0R08AksOgJgGbN2/W2rVre9y3Z88eVVRUKDc3V5I0c+ZMVVdXx28LASQ0+gKA7ugJQHIY1Aesy8vL+9wXDAZ73J+WlqaMjAydPn1axcXF/a4nFAr1uJx2LJeGBjC84tEX6AlA6uBcAUgOMacDZWZmKhAI9LgvOztbLS0tzmWqqqpUWFgYuU2cODHWzQCQQAbbF+gJQGrjXAFIPDFPAkpKSnTy5Mke9zU1NZmpDOvXr1djY2PkVl9fH+tmAEggg+0L9AQgtXGuACSemPMW586dq82bN0d+rqurUygUUklJiXOZQCDQ5z8CAFLHYPsCPQFIbZwrAIkn5knAvHnzFAwGtWXLFq1cuVIbN27UwoULzbzUVDcUWfZe1wGw6k1NTc7alVde6awdOHDAHNO6jkC0+4DrAKQG+sLARZuT7pWfb9mwYYOz9vbbbztrXrnnVg7+8ePHnTXrRM/K3ZfsjG1rH504ccJZs66jIEljx4511o4cOWIu6zJ16lSz7uqN4XDYcx8lgkTvCUVFRc5ac3Ozs9bV1eWseR0vVt1ab/fvSfQ2ffp0c8wvf/nLzpr19/eiiy5y1v70T//UHPOuu+5y1mbNmuWsXXjhhc6a177tnU7V3U9+8hNnrayszFnzupaTdRxGe+2koRbzGVdmZqYee+wxLVu2TOvWrVN6erpefPHFOGwagGRFXwDQHT0BSDxRTQJ6/3flhhtuUG1trXbv3q2KigrzynsAUhN9AUB39AQgscXtsxdlZWVavHhxvFYHIAXQFwB0R08AEkfM6UAAAAAAkguTAAAAAMBnmAQAAAAAPkMe4xCwIuuijdX0is5sbW2Natk5c+Y4a14RoWPGjHHWel8UZqDb4xWFao0JJCMrxtKKT/SKhbzhhhuctXnz5jlrr7/+urNWWlpqjmnFblqsnukVBWhdcdaKdiwvL3fWrrvuOnNMa73W9loRql6WLl3a7/3nzp3Tv//7v0e9XrzHet6iPUbb2trMMa1lre2x/k7m5+ebY/7ud79z1j7xiU+Yy7pYx6Ak5eTkRLXehoYGZ+03v/mNuexvf/tbZ83aR1ZccWFhoTlmbW2tWXeJNiY6HngnAAAAAPAZJgEAAACAzzAJAAAAAHyGSQAAAADgM0wCAAAAAJ9hEgAAAAD4DBGhQ8ArznMo1mlFkV1yySXO2uHDh521//zP/zTH/LM/+zNnzYoItWJSreg9ScrKyjLrQLKJNgZ0xIgR5nr/4R/+wVmz4n+tiDyvMU+fPu2svfXWW87auXPnnDWrX0h2bPDHPvYxZ23WrFnOmleUZ2NjY1TLWtGOZ86cMcd0PZbW1lYiQgfAOs4k78jdaNbb1NRkLmtFZ1oRodb5gFdM70c/+lFn7U/+5E+ctS9/+cvO2t///d+bY37lK19x1qqqqpy1H/zgB87awYMHzTEtRUVFztrx48edtbKyMnO9XV1dzpp17FsRtFY/lqRQKGTWvfBOAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwGSJCh4AVBTVUrIjQcePGOWtWJKcVvSd5R/dFs5wVMSgREYrUE2004Y9//GOzbkXHecUlulhRnpIdoVdRUeGsTZo0yVn70Ic+ZI45atQoZ816nFbvCwaD5phWfKMVE1hYWOiseUU7jhw5st/7o30u/aakpMSsW9Gu1t/X/Px8Z23fvn3mmBdffLGzlpeX56wdO3bMXK/Fiv5uaGhw1u6++25nzetcobS01Fmz4sTT0tLM9VouuugiZ+03v/mNs/b5z3/eWfu///f/mmOOHj3aWbNiQK1zRitGViIiFAAAAMAgMQkAAAAAfIZJAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZwY9CWhoaFB5ebkOHToUuW/t2rVKS0uL3KZOnRrPbQSQ4OgLALqjJwCJb1DXCWhoaFBlZWWPg1qSdu3ape3bt+vKK6+URG5xZmZ0l1+IdjnJzt63srtfeuklZ80rn9aVW+21PdZ6vcaM9toEGDrD0ResnHYvVo57onnyySedNStjXJL27NnjrFnZ+lY+udc1UMaOHeusLV++3FmzXhutra3mmI2Njc6alc1tvQ68rkdivf4uuOACZ83Korf2u+T++xDL342hkojnCrm5uWa9qanJWbOu5VFUVOSs1dTUmGOWl5c7a9bfOuu1u3XrVnNM63h58cUXnTXrWgl33HGHOebTTz/trM2fP99Zu/TSS50167oFkvSpT33KWbPOie677z5nzbrWiSSNHz/eWbN6p9VPAoGAOWasBvWX9JZbbtGtt97a476Ojg7t379f8+bNU1FRkYqKisyLZwBILfQFAN3RE4DkMKhJwObNm7V27doe973++uvq6urSrFmzlJOTo0WLFunw4cNx3UgAiYu+AKA7egKQHAY1Cejvravq6mrNmDFDTz75pPbu3avMzEzddddd5npCoZCCwWCPG4DkFI++QE8AUgfnCkByiPnDhMuXL+/xWc9HH31U5eXlCgaDKigo6HeZqqoqbdiwIdahASSowfYFegKQ2jhXABJP3CNCS0tL1dXVpePHjzt/Z/369WpsbIzc6uvr470ZABKIV1+gJwD+wrkCMPxingSsW7eux7fRd+7cqfT0dE2cONG5TCAQUEFBQY8bgNQx2L5ATwBSG+cKQOKJ+eNAl19+ue6//36NHTtWnZ2dWrNmjW677TbPOK5UFm10psUrms+KiSstLXXWfve73zlrXhGE0bL2j5dEjMNDX/HqC+np6UpLS+tzvxXZl4isaLmHHnrIWbPSU/bt22eOaUVOWpF0/e3v86zITUlqbm6Oatn29nZzvRbrNeUV9eni9Tit7bUiTc+dO+esFRcXm2MeO3as3/ut6MZEMtznCoWFhWa9paXFWbNiGkeMGOGseb2urePQ+ptv/Q1duXKlOaZ1jFrrPXPmjLP2v/7X/zLHvPnmm521119/3VmbPHmys+YVJ259f8TaB3PnznXWvI5Rq99Y8cChUMhZG+qI0JjPqFasWKH9+/dr6dKlysjI0IoVK7Rx48Z4bBuAJEVfANAdPQFIPFFNAnr/l6SqqkpVVVVx2SAAyYm+AKA7egKQ2OL+xWAAAAAAiY1JAAAAAOAzTAIAAAAAn2ESAAAAAPgMeYtDoKSkJKrlrPjQWCJCrdivXbt2OWsLFiwwx7TisKxoQyvaa6gepxUJhsTV1dU16GWuu+46s37FFVc4axdccIGzNnr0aGdtwoQJ5pjWa/706dPO2tGjR501r6jdjIwMZ83qNdZyXqxoTevYjTY6WbIjTa34zKampqjHtB6n1cOsmECrZ0rSiRMn+r3fihfE+7xeY9ZzakUSWxGnXv3Lihe1XrtWnKlXfLJ1vFj7yFrOK37117/+tbNm9VUrbtc6liRp1KhRzpoVH/rpT386quUk+/m0Xl9ekcRDiXcCAAAAAJ9hEgAAAAD4DJMAAAAAwGeYBAAAAAA+wyQAAAAA8BkmAQAAAIDPEBE6BMaNGxf3dXrFm1kRhFbt1KlTUW+TFfln1awIPWs5yX4sxcXFzhoRoally5YtzprXa6i+vt5Zs44zK5bv0KFD5ph5eXnOmhXJWVBQ4KxZEb1e67Wi7KxYQ68+FG3koXV8tre3m2OeO3fOWYsmYlaKLSbVWjYQCDhrVtSkJL3++uv93u8Vq4z3WMegZB/fVoSj9Zx6xXVaMb/W6z493f3/26KiInNM61iz4ma91muxenJZWVlU66yrqzPrr732mrP2T//0T86aFZvu9RqyepHVr6ONbY0H3gkAAAAAfIZJAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwGa4TMASsXNdos/W9WHnD1npbW1udtZMnT5pjTps2zVnLz8+PakyvfWDVvTJ8kXzGjx/fbyb29OnTncs0NjZGPV5DQ4OzNnbsWGfNK+Pdys+3rgVg5YF7HStWtrmVZR/tsStJJ06ccNa88v5dYnmc0a7XK9/dGtPKA7fGtJ5ryX0timivheA3XseodZ0AK8fd2v9er03rOLTWay1nPQ7Jfp1ZY1rXo7DOPySpqanJWausrHTWLr30Umft3//9380xa2pqnLWpU6c6azNnznTWXn75ZXNMq3eePXvWWbNeJ1wnAAAAAEBcMQkAAAAAfIZJAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZwadSblt2zb97//9v3X48GFddtlleuqpp3TxxRdr3759WrlypWpqarRq1Sp97WtfM2O1UllbW5uzZsXH5eTkOGte0XzWslYs3ZkzZ5w1K9ZLsuOwoo218lrOeixeEXAYGkPZEy6++OJ+jxkrbs2K45SkyZMnO2uXXXaZs2bFuHk9rmh7grVeazmvZa2IwaNHjzprVkygZEcMBgIBZ83aVq+4TovVT6zXkFdcp8XaR9Zj8Xqcrr8BiRgRmojnCV4R0tEeo7G8VqyeYh0v586dc9a8InWt16dXT3Hxeg2OGzfOWdu9e7eztmPHDmdt/Pjx5phz5sxx1qx9az2fXudEVr+x/i6FQiFnLdrnZKAG9eqtra3VypUr9dBDD+no0aOaPn26Vq1apVAopOuvv15z5szRrl27VF1drSeeeGKINhlAoqAnAOiOngAkj0FNAg4cOKCHHnpIN910k8aOHat77rlHr776qp577jk1NjbqkUce0ZQpU7Rx40Y9/vjjQ7XNABIEPQFAd/QEIHkM6uNAva/sdvDgQU2bNk179uxRRUVF5OMYM2fOVHV1tXM9oVCox9sfwWBwMJsBIEHQEwB0F6+eINEXgKEW9YfZ2tvb9fDDD2v16tUKBoMqLy+P1NLS0pSRkaHTp0/3u2xVVZUKCwsjt4kTJ0a7GQASBD0BQHex9ASJvgAMtagnAQ888IDy8vK0atUqZWZm9vmiRXZ2tlpaWvpddv369WpsbIzc6uvro90MAAmCngCgu1h6gkRfAIbaoNOBpPe+sb1p0yb95je/UVZWlkpKSrRv374ev9PU1OT8NnQgEDC/nQ0gudATAHQXa0+Q6AvAUBv0JKCurk7Lli3Tpk2bdMkll0iS5s6dq82bN/f4nVAopJKSkvhtaRKx3rKMNtrLigD1WjZax48fN+sjR4501qztibYm2fvB2h4MnaHsCddcc02/sWvFxcXOZbz+W9je3u6sWTGNVqSkV0Se9bq1eoJ1gmT9B1Wyo+WsSDorttCKFvUaM9ooSK/oTGvfW9HKhYWFzprXZ8+jjW619u3vf/97c8xYoig/aIl4nuD12rWOQ0ssEa1WL7LiJq3XgtfrxNoP1uvaWq/XPrDqZWVlzpoVA+rVF6LtcdbfFq+IZGvfRhsBb21rPAyqq7S2tqqyslJLlizRjTfeqObmZjU3N+vqq69WMBjUli1bJEkbN27UwoULPQ86AMmNngCgO3oCkDwG9e/j559/XtXV1aquru4zo3/ssce0bNkyrVu3Tunp6XrxxRfjva0AEgw9AUB39AQgeQxqErBkyRLnWxOTJk1SbW2tdu/erYqKCo0aNSouGwggcdETAHRHTwCSR1w/SF5WVqbFixfHc5UAkhg9AUB39AQgcSTPN40AAAAAxAWTAAAAAMBn4p8rCY0bN85Z84qYcvGKzrRiraKNDz148KBZtyKvrDGt6DMrXs9rvdY+QHL6/ve/3280nfVcz5gxI+rxGhoanLUJEyY4a83NzeZ68/LynLWmpiZnzYq584rEtZa1alYU4NixY80xrSjAxsZGZ82KwfPqX9Z+sLbH2u9WbKFkb68VJWsl4ViRpZKUm5vb7/1eUYl4j9f1BqyIUOuYsI4lL1ZEqPXatWpeUbzRRvVa+8Brndb2WsdSLPs22kjTWKJ4rZ4S7XM91NHAvBMAAAAA+AyTAAAAAMBnmAQAAAAAPsMkAAAAAPAZJgEAAACAzzAJAAAAAHyGSQAAAADgM1wnYAjk5+c7a9Hm53tdX8DKyo722gReGb3WY7G2x1qvtQ8k+7FY12dAcqqrq+v3/lWrVjmXGT16tLnOCy64wFk7dOiQs/bCCy84a16vvW9/+9vO2oMPPuisWdcX+MlPfmKO+ZGPfMRZGz9+vLNmZdl/73vfM8e88MILnbWPf/zjzlptba2z5rVv//qv/9pZu+aaa5y1T3/6087aypUrzTGnTp3qrN10003O2q5du5y13bt3m2N6XbcFNq/rTVjXCbCuX9PS0hL1NrW1tTlr1vUfrO1pbW01x7Ry+aPldZ0Aa0xrWasXeY1p5etb+zba6yhI9vYOx3ULBoJ3AgAAAACfYRIAAAAA+AyTAAAAAMBnmAQAAAAAPsMkAAAAAPAZJgEAAACAzxAROgSsmEsr2isnJ8dZ84r9suLPTp48aS7r4hUtao1pPZbm5uao1inZ+9ZrWfhDQ0NDTHWXOXPmRLWcl1/96lfOmhV3+l//9V/meq24zunTpztr1nH/4osvmmNarFjSo0ePRr1ey3e/+90hWa/lq1/96gc+JrxZEaCSHWNp/d3x+ttsGTNmjLPW1NQUVc1LtBGhVoylFY0p2bGbQxFZKtnRmta5gtdjiXZMKzbdeg2NGDEi6u0ZCN4JAAAAAHyGSQAAAADgM0wCAAAAAJ9hEgAAAAD4DJMAAAAAwGcGNQnYtm2bJk+erMzMTM2aNUsHDhyQJK1du1ZpaWmR29SpU4dkYwEkHvoCgO7oCUByGHCmYm1trVauXKnvfOc7uuaaa7RmzRqtWrVKv/71r7Vr1y5t375dV155paTYIpZSQX5+vrMWbZyYFbkp2dGjZ86ciWrMt956y6xbUYLRRqHGYuLEiUOyXrjRF2K3e/fuIVnv4cOHo6oNlaGKAUViSdSeYMVUSna8o/X37NSpU1Fvk7VeKxrS+ttrRXlK9n6walasZnt7uzmm9Txb+8Bar9fzaUWPtrS0mMtGy4putV5f1nlhXl5eTNvkZcCTgAMHDuihhx7STTfdJEm65557tHjxYnV0dGj//v2aN2+emYMKIPXQFwB0R08AkseAPw5UWVmpu+66K/LzwYMHNW3aNL3++uvq6urSrFmzlJOTo0WLFg3Lf5kAfPDoCwC6oycAySOqLwa3t7fr4Ycf1urVq1VdXa0ZM2boySef1N69e5WZmdmjAfQnFAopGAz2uAFIbrH0BXoCkHo4VwAS24A/DtTdAw88oLy8PK1atUpZWVlavnx5pPboo4+qvLxcwWBQBQUF/S5fVVWlDRs2RLfFABJSLH2BngCkHs4VgMQ26HcCduzYoU2bNmnr1q39fqGjtLRUXV1dOn78uHMd69evV2NjY+RWX18/2M0AkEBi7Qv0BCC1cK4AJL5BTQLq6uq0bNkybdq0SZdccokkad26ddq6dWvkd3bu3Kn09HQzqSUQCKigoKDHDUByikdfoCcAqYNzBSA5DPjjQK2traqsrNSSJUt04403qrm5WZI0c+ZM3X///Ro7dqw6Ozu1Zs0a3XbbbcrNzR2yjU508+bNc9as/3pYrEgwSSovL496WZeGhgazbiU8jBs3zlmz4rCs5STpwgsvdNasCDMMDfoCgO4StSeUlpaa9bfffttZs+I6YzFlyhRnzfr+g/W3OTs72xyzs7PTWbNiNb2iRy3W/rPOI6x9EMvfeyvGvbCwMOr1WtGj48ePd9as87cjR45EvT0DMeC9+Pzzz6u6ulrV1dXavHlz5P66ujrdfPPNWrp0qTIyMrRixQpt3LhxSDYWQGKhLwDojp4AJI8BTwKWLFninCVWVVWpqqoqbhsFIDnQFwB0R08AkkdUEaEAAAAAkheTAAAAAMBnmAQAAAAAPsMkAAAAAPAZJgEAAACAzxCsPgTWrl3rrC1evNhZGzNmjLPW1tZmjvnDH/7QWduyZYu5bLQ+85nPOGu33HKLsxbL4/zmN7/prP3oRz8ylwUA+NPvfvc7s2797cnIyHDWGhsbo94m62+WdX2f9vZ2Z83rugtWZn9RUZGzZu2Dc+fOmWOmp7v/32xdm8C6ToDXuYJ1vQTrWkWxXJX62LFjzpp13mNdP2qorxPAOwEAAACAzzAJAAAAAHyGSQAAAADgM0wCAAAAAJ9hEgAAAAD4TEKkA1nfDk9G1jflrW+lt7S0OGte34S36l1dXeay0bIep/VYzp49G9Vykp2KkGqvIxc/PE4/PEYgnvxwzMTyGK20Ha+6Ne5QbVNnZ2dUNa/HaSX1WH/TrfOIWMaMdh94ndfEsmy0rPVa+9Z6DVmPw8tAXptp4QToHEeOHNHEiROHezOApFBfX68JEyYM92YMKXoCMDj0BQDdDaQnJMQkoKurS8eOHVN+fr6ampo0ceJE1dfXq6CgYLg3LSEFg0H2kSFV9084HFZTU5MuuOAC8z8rqaB7T0hLS0vZ5zRe2D/eUnUf+bUvcK7gLVVf8/GSqvtnMD0hIT4OlJ6eHpmtpKWlSZIKCgpS6kkZCuwjWyrun8LCwuHehA9E957QXSo+p/HE/vGWivvIj32Bc4WBYx/ZUnH/DLQnpPa/DQAAAAD0wSQAAAAA8JmEmwQEAgE98MADCgQCw70pCYt9ZGP/pB6eUxv7xxv7KLXwfHpjH9nYPwnyxWAAAAAAH5yEeycAAAAAwNBiEgAAAAD4DJMAAAAAwGeYBAAAAAA+k1CTgH379mnu3LkqLi7WunXrxHeW39PQ0KDy8nIdOnQoch/76n3btm3T5MmTlZmZqVmzZunAgQOS2EepguexL3qCjZ6Q2nge+0dfsNEX+kqYSUAoFNL111+vOXPmaNeuXaqurtYTTzwx3Js17BoaGlRZWdnjoGZfva+2tlYrV67UQw89pKNHj2r69OlatWoV+yhF8Dz2RU+w0RNSG89j/+gLNvqCQzhBPPPMM+Hi4uLw2bNnw+FwOPzaa6+Fr7rqqmHequG3YMGC8De+8Y2wpHBdXV04HGZfdfezn/0s/N3vfjfy844dO8I5OTnsoxTB89gXPcFGT0htPI/9oy/Y6Av9yxzmOUjEnj17VFFRodzcXEnSzJkzVV1dPcxbNfw2b96s8vJy3XvvvZH72Ffvq6ys7PHzwYMHNW3aNPZRiuB57IueYKMnpDaex/7RF2z0hf4lzMeBgsGgysvLIz+npaUpIyNDp0+fHsatGn7d98l57Kv+tbe36+GHH9bq1avZRymC57EvesLA0RNSD89j/+gLA0dfeF/CTAIyMzP7XLo5OztbLS0tw7RFiYt91b8HHnhAeXl5WrVqFfsoRfA8Dgz7qX/0hNTD8zhw7Kv+0RfelzCTgJKSEp08ebLHfU1NTRoxYsQwbVHiYl/1tWPHDm3atElbt25VVlYW+yhF8DwODPupL3pCauJ5HDj2VV/0hZ4SZhIwd+5c7dy5M/JzXV2dQqGQSkpKhnGrEhP7qqe6ujotW7ZMmzZt0iWXXCKJfZQqeB4Hhv3UEz0hdfE8Dhz7qif6Ql8JMwmYN2+egsGgtmzZIknauHGjFi5cqIyMjGHessTDvnpfa2urKisrtWTJEt14441qbm5Wc3Ozrr76avZRCuC1PjDsp/fRE1Ibr/WBY1+9j77gMNzxRN1t27YtnJubGx41alR4zJgx4f379w/3JiUMdYv9CofZV+c9++yzYUl9bnV1deyjFMHz2D96Qv/oCamP59GNvtA/+kL/0sLhxLo02okTJ7R7925VVFRo1KhRw705CY195Y19lBp4HgeG/eSNfZQaeB4Hjn3lza/7KOEmAQAAAACGVsJ8JwAAAADAB4NJAAAAAOAzTAIAAAAAn2ESAAAAAPgMkwAAAADAZ5gEAAAAAD7DJAAAAADwGSYBAAAAgM8wCQAAAAB85v8BBETiniyiNAoAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 800x800 with 9 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"fg, ax = plt.subplots(3, 3, figsize=(8, 8))\n",
|
|
"for i in range(9):\n",
|
|
" idx = np.random.randint(0, 10000)\n",
|
|
" img = x_test[idx]\n",
|
|
" a = ax[i // 3, i % 3]\n",
|
|
" a.imshow(img.squeeze(), cmap='gray')\n",
|
|
" prediction = model.predict(img.reshape((1, 28, 28, 1)))\n",
|
|
" predicted_label = np.argmax(prediction)\n",
|
|
" print('预测的类别是:',predicted_label)\n",
|
|
" label = np.argmax(y_test[idx])\n",
|
|
"\n",
|
|
" if predicted_label == label:\n",
|
|
" a.set_title('正确的!')\n",
|
|
" else:\n",
|
|
" a.set_title('错误的!')\n",
|
|
"plt.tight_layout()\n",
|
|
"plt.savefig('out.png')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "29c8e068",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "629abe45",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.9.13"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|