`
daojin
  • 浏览: 690235 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Tensorflow 例子之mnist训练过程与验证

 
阅读更多
//总体过程
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])

分享到:
评论

相关推荐

    tensorflow操作mnist数据集源代码

    通过添加`tf.summary`节点,可以在训练过程中记录损失、准确率等关键指标,以便于可视化监控和分析模型性能。 总的来说,`tensorflow操作mnist数据集源代码`是一个完整的教程,涵盖了从数据预处理、模型构建、训练...

    tensorflow_mnist_cnn.zip_MNIST_tensorflow

    通常,这样的示例会涵盖数据预处理、模型架构定义、训练过程以及性能评估等关键步骤。 文件"tensorflow_mnist_cnn.py"可能是整个项目的核心代码文件,它可能包含了以下内容: 1. **数据加载与预处理**:首先,代码...

    MNIST用神经网络实现

    在MNIST任务中,TensorFlow被用来定义神经网络的结构、训练过程以及预测。 **2. 神经网络** 神经网络是一种模仿人脑神经元结构的计算模型,由多个层次的节点(神经元)组成。在这个例子中,神经网络通常包含输入层...

    mnist数据集

    2. **可视化**:MNIST 的简单结构使得可视化神经网络的学习过程变得直观。 3. **模型优化**:通过调整超参数或尝试新的架构,可以在 MNIST 上优化模型性能。 **五、深度学习的其他数据集** MNIST 虽然简单,但对于...

    基于CNN的MNIST数字识别

    训练过程中,我们需要监控模型的训练损失和验证损失,以及准确率,以评估模型性能。当达到满意的训练结果后,可以将模型保存以便后续使用。 总结来说,“基于CNN的MNIST数字识别”项目是深度学习初学者和专业人士的...

    KNN手写数字识别MNIST库

    虽然在这个例子中,我们似乎并没有使用TensorFlow构建模型,但使用`tf.keras.datasets.mnist.load_data()`函数可以方便地下载和加载MNIST数据。 在`knn.py`文件中,可能包含了实现KNN算法的代码。KNN的工作原理是...

    tensorflow使用CNN分析mnist手写体数字数据集

    总结来说,这个例子展示了如何使用TensorFlow构建一个简单的CNN模型,对MNIST手写数字数据集进行分类。这个模型包含了卷积层、池化层、dropout和全连接层,这些组件是许多现代深度学习模型的基础。通过调整网络结构...

    mnist转换完成的文件。转换过程有点麻烦

    在这个例子中,原始的MNIST数据集可能以CSV或二进制格式存在,转换可能是为了适应某种特定的深度学习框架,如TensorFlow或Caffe,这些框架通常需要像LMDB这样的键值对数据库来高效地加载和批处理数据。 3. **LMDB...

    mnist_uint8

    标题"Mnist_uint8"指的是一个与手写字符识别相关的数据集,其中包含了原始的数据以及用于生成".mat"文件的代码。这个数据集广泛用于机器学习和深度学习领域,特别是作为初学者入门计算机视觉任务的经典例子。MNIST...

    MNIST数据集

    2. 教程示例:新手学习深度学习时,MNIST是入门的典型例子,因为它相对简单,易于理解和实现。 3. 算法比较:研究人员可以通过比较不同算法在MNIST上的表现来评估它们的优劣。 **五、挑战与进阶** 尽管MNIST数据集...

    mnist手写体识别数据集下载

    这个例子展示了如何使用TensorFlow构建一个卷积神经网络(CNN)对MNIST数据集进行分类。通过训练和测试,我们可以观察模型在未知数据上的表现,以此来评估模型的泛化能力。 MNIST数据集不仅适合初学者了解图像分类...

    Mnist 数据代码范例

    6. **训练过程中的监控**:在训练过程中,会监控损失(loss)和准确率(accuracy)等指标,以便了解模型的性能和训练进度。这可以通过TensorFlow的`tf.summary`和`TensorBoard`工具实现,后者可以可视化这些指标。 7. *...

    fashion-mnist.zip

    《时尚MNIST数据集在TensorFlow中的应用与详解》 时尚MNIST(Fashion-MNIST)数据集,作为经典MNIST数据集的替代品,被广泛应用于机器学习和深度学习领域的初学者教程以及研究中。它由Zalando公司提供,包含60,000...

    Tensorflow CNN.zip_tensorflow_tensorflow cnn_卷积神经网络_手写数字识别_神经网络

    在训练过程中,TensorBoard是一个强大的可视化工具,它可以帮助我们监控训练过程,包括损失函数的变化、精度的提升以及学习率的调整等。通过与TensorBoard的集成,我们可以更好地理解模型的性能和可能存在的问题。 ...

    Tensorflow-Examples

    6. **训练与优化**:示例可能会涉及训练过程,包括定义损失函数、选择优化器(如梯度下降、Adam等)以及训练循环。此外,还会涉及到验证和测试数据集的使用,以评估模型性能。 7. **保存与恢复模型**:学习如何持久...

    TensorFlow的基本用法入门版

    这是一个TensorFlow的基本用法入门版 使用的是Python 3.6.3 + Tensorflow 1.8.0,所以和参考文档中的略有不同 ...7、TensorFlow_MNIST文件夹里是mnist的程序 基础入门版是mnist_simple, 高级版是mnist_advanced

    tensorflow实现手写字体的识别下载

    在MNIST数据集上进行手写数字识别是深度学习入门的经典例子,MNIST数据集包含了60000个训练样本和10000个测试样本,每个样本都是28x28像素的灰度图像,代表0到9的手写数字。 首先,我们需要导入必要的库,包括...

    TensorFlow多层感知器识别手写数字.zip

    训练过程通常包括多个epoch,每个epoch遍历整个训练集一次。 **7. 评估与预测** 训练完成后,我们使用测试集评估模型的性能。这包括计算准确率、混淆矩阵等指标。同时,模型也可以用于对新手写数字图像进行预测。 ...

    mnist cnn.zip

    3. 训练与评估:通过设置优化器(如Adam)、损失函数(如交叉熵)和评估指标(如准确率),对模型进行训练,并在验证集上进行性能评估。 4. 模型保存与预测:训练完成后,模型可能被保存以供后续使用,并创建一个...

    Python-使用卷积神经网络完成MNIST分类实现了诸如数据增加丢弃批量规范化等

    MNIST数据集是机器学习领域的一个基准,通常用于验证和测试新的图像分类算法。在这个项目中,我们不仅会构建一个基本的CNN模型,还将实施一些高级技术,如数据增强、丢弃层和批量规范化,以提高模型的性能和泛化能力...

Global site tag (gtag.js) - Google Analytics