//总体过程
1. 预处理data,分别伟traindata和testdata
2.建立模型,编译模型
3.训练模型 fit
4.评估模型 evaluate
5.验证模型 predict + plot
(60000, 28, 28)
6000 张图,28*28 进行训练。
标签是一个数字
train_labels
array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)
try:
# %tensorflow_version only exists in Colab.
%tensorflow_version 2.x
except Exception:
pass
from __future__ import absolute_import, division, print_function, unicode_literals
# TensorFlow and tf.keras
import tensorflow as tf
from tensorflow import keras
# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
print(tf.__version__)
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
train_images.shape
len(train_labels)
train_labels
test_images.shape
#(10000, 28, 28)
len(test_labels)
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()
train_images = train_images / 255.0
test_images = test_images / 255.0
plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels[i]])
plt.show()
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10)
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10)
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\nTest accuracy:', test_acc)
probability_model = tf.keras.Sequential([model,
tf.keras.layers.Softmax()])
predictions = probability_model.predict(test_images)
predictions[0]
np.argmax(predictions[0])
test_labels[0]
def plot_image(i, predictions_array, true_label, img):
predictions_array, true_label, img = predictions_array, true_label[i], img[i]
plt.grid(False)
plt.xticks([])
plt.yticks([])
plt.imshow(img, cmap=plt.cm.binary)
predicted_label = np.argmax(predictions_array)
if predicted_label == true_label:
color = 'blue'
else:
color = 'red'
plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],
100*np.max(predictions_array),
class_names[true_label]),
color=color)
def plot_value_array(i, predictions_array, true_label):
predictions_array, true_label = predictions_array, true_label[i]
plt.grid(False)
plt.xticks(range(10))
plt.yticks([])
thisplot = plt.bar(range(10), predictions_array, color="#777777")
plt.ylim([0, 1])
predicted_label = np.argmax(predictions_array)
thisplot[predicted_label].set_color('red')
thisplot[true_label].set_color('blue')
i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()
i = 12
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()
# Plot the first X test images, their predicted labels, and the true labels.
# Color correct predictions in blue and incorrect predictions in red.
num_rows = 5
num_cols = 3
num_images = num_rows*num_cols
plt.figure(figsize=(2*2*num_cols, 2*num_rows))
for i in range(num_images):
plt.subplot(num_rows, 2*num_cols, 2*i+1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(num_rows, 2*num_cols, 2*i+2)
plot_value_array(i, predictions[i], test_labels)
plt.tight_layout()
plt.show()
# Grab an image from the test dataset.
img = test_images[1]
print(img.shape)
# Add the image to a batch where it's the only member.
img = (np.expand_dims(img,0))
print(img.shape)
predictions_single = probability_model.predict(img)
print(predictions_single)
plot_value_array(1, predictions_single[0], test_labels)
_ = plt.xticks(range(10), class_names, rotation=45)
np.argmax(predictions_single[0])
分享到:
相关推荐
通过添加`tf.summary`节点,可以在训练过程中记录损失、准确率等关键指标,以便于可视化监控和分析模型性能。 总的来说,`tensorflow操作mnist数据集源代码`是一个完整的教程,涵盖了从数据预处理、模型构建、训练...
通常,这样的示例会涵盖数据预处理、模型架构定义、训练过程以及性能评估等关键步骤。 文件"tensorflow_mnist_cnn.py"可能是整个项目的核心代码文件,它可能包含了以下内容: 1. **数据加载与预处理**:首先,代码...
在MNIST任务中,TensorFlow被用来定义神经网络的结构、训练过程以及预测。 **2. 神经网络** 神经网络是一种模仿人脑神经元结构的计算模型,由多个层次的节点(神经元)组成。在这个例子中,神经网络通常包含输入层...
2. **可视化**:MNIST 的简单结构使得可视化神经网络的学习过程变得直观。 3. **模型优化**:通过调整超参数或尝试新的架构,可以在 MNIST 上优化模型性能。 **五、深度学习的其他数据集** MNIST 虽然简单,但对于...
训练过程中,我们需要监控模型的训练损失和验证损失,以及准确率,以评估模型性能。当达到满意的训练结果后,可以将模型保存以便后续使用。 总结来说,“基于CNN的MNIST数字识别”项目是深度学习初学者和专业人士的...
虽然在这个例子中,我们似乎并没有使用TensorFlow构建模型,但使用`tf.keras.datasets.mnist.load_data()`函数可以方便地下载和加载MNIST数据。 在`knn.py`文件中,可能包含了实现KNN算法的代码。KNN的工作原理是...
总结来说,这个例子展示了如何使用TensorFlow构建一个简单的CNN模型,对MNIST手写数字数据集进行分类。这个模型包含了卷积层、池化层、dropout和全连接层,这些组件是许多现代深度学习模型的基础。通过调整网络结构...
在这个例子中,原始的MNIST数据集可能以CSV或二进制格式存在,转换可能是为了适应某种特定的深度学习框架,如TensorFlow或Caffe,这些框架通常需要像LMDB这样的键值对数据库来高效地加载和批处理数据。 3. **LMDB...
标题"Mnist_uint8"指的是一个与手写字符识别相关的数据集,其中包含了原始的数据以及用于生成".mat"文件的代码。这个数据集广泛用于机器学习和深度学习领域,特别是作为初学者入门计算机视觉任务的经典例子。MNIST...
2. 教程示例:新手学习深度学习时,MNIST是入门的典型例子,因为它相对简单,易于理解和实现。 3. 算法比较:研究人员可以通过比较不同算法在MNIST上的表现来评估它们的优劣。 **五、挑战与进阶** 尽管MNIST数据集...
这个例子展示了如何使用TensorFlow构建一个卷积神经网络(CNN)对MNIST数据集进行分类。通过训练和测试,我们可以观察模型在未知数据上的表现,以此来评估模型的泛化能力。 MNIST数据集不仅适合初学者了解图像分类...
6. **训练过程中的监控**:在训练过程中,会监控损失(loss)和准确率(accuracy)等指标,以便了解模型的性能和训练进度。这可以通过TensorFlow的`tf.summary`和`TensorBoard`工具实现,后者可以可视化这些指标。 7. *...
《时尚MNIST数据集在TensorFlow中的应用与详解》 时尚MNIST(Fashion-MNIST)数据集,作为经典MNIST数据集的替代品,被广泛应用于机器学习和深度学习领域的初学者教程以及研究中。它由Zalando公司提供,包含60,000...
在训练过程中,TensorBoard是一个强大的可视化工具,它可以帮助我们监控训练过程,包括损失函数的变化、精度的提升以及学习率的调整等。通过与TensorBoard的集成,我们可以更好地理解模型的性能和可能存在的问题。 ...
6. **训练与优化**:示例可能会涉及训练过程,包括定义损失函数、选择优化器(如梯度下降、Adam等)以及训练循环。此外,还会涉及到验证和测试数据集的使用,以评估模型性能。 7. **保存与恢复模型**:学习如何持久...
这是一个TensorFlow的基本用法入门版 使用的是Python 3.6.3 + Tensorflow 1.8.0,所以和参考文档中的略有不同 ...7、TensorFlow_MNIST文件夹里是mnist的程序 基础入门版是mnist_simple, 高级版是mnist_advanced
在MNIST数据集上进行手写数字识别是深度学习入门的经典例子,MNIST数据集包含了60000个训练样本和10000个测试样本,每个样本都是28x28像素的灰度图像,代表0到9的手写数字。 首先,我们需要导入必要的库,包括...
训练过程通常包括多个epoch,每个epoch遍历整个训练集一次。 **7. 评估与预测** 训练完成后,我们使用测试集评估模型的性能。这包括计算准确率、混淆矩阵等指标。同时,模型也可以用于对新手写数字图像进行预测。 ...
3. 训练与评估:通过设置优化器(如Adam)、损失函数(如交叉熵)和评估指标(如准确率),对模型进行训练,并在验证集上进行性能评估。 4. 模型保存与预测:训练完成后,模型可能被保存以供后续使用,并创建一个...
MNIST数据集是机器学习领域的一个基准,通常用于验证和测试新的图像分类算法。在这个项目中,我们不仅会构建一个基本的CNN模型,还将实施一些高级技术,如数据增强、丢弃层和批量规范化,以提高模型的性能和泛化能力...