- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章由浅入深学习TensorFlow MNIST 数据集由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
MNIST 包含 0~9 的手写数字, 共有 60000 个训练集和 10000 个测试集. 数据的格式为单通道 28*28 的灰度图. 。
。
LeNet 网络最早由纽约大学的 Yann LeCun 等人于 1998 年提出, 也称 LeNet5. LeNet 是神经网络的鼻祖, 被誉为卷积神经网络的 “Hello World”. 。
。
。
from tensorflow.keras.datasets import mnistfrom matplotlib import pyplot as pltimport numpy as npimport tensorflow as tf
# ------------------1. 读取 & 查看数据------------------# 读取数据(X_train, y_train), (X_test, y_test) = mnist.load_data()# 数据集查看print(X_train.shape) # (60000, 28, 28)print(y_train.shape) # (60000,)print(X_test.shape) # (10000, 28, 28)print(y_test.shape) # (10000,)print(type(X_train)) # <class 'numpy.ndarray'># 图片显示plt.imshow(X_train[0], cmap="Greys") # 查看第一张图片plt.show()
# ------------------2. 数据预处理------------------# 格式转换 (将图片从28*28扩充为32*32)X_train = np.pad(X_train, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)X_test = np.pad(X_test, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)print(X_train.shape) # (60000, 32, 32)print(X_test.shape) # (10000, 32, 32)# 数据集格式变换X_train = X_train.astype(np.float32)X_test = X_test.astype(np.float32)# 数据正则化X_train /= 255X_test /= 255# 数据维度转换X_train = np.expand_dims(X_train, axis=-1)X_test = np.expand_dims(X_test, axis=-1)print(X_train.shape) # (60000, 32, 32, 1)print(X_test.shape) # (10000, 32, 32, 1)
# 第一个卷积层conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)# 第一个池化层pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")# 第二个卷积层conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)# 第二个池化层pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")# 扁平化flatten = tf.keras.layers.Flatten()# 第一个全连接层fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)# 第二个全连接层fc_layer_2 = tf.keras.layers.Dense(units=84, activation=tf.nn.softmax)# 输出层output_layer = tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)
卷积 Conv2D 的用法
池化 AveragePooling2D 的用法
全连接 Dense 的用法
# 模型实例化model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu, input_shape=(32, 32, 1)), # relu tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'), tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu), tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'), tf.keras.layers.Flatten(), tf.keras.layers.Dense(units=120, activation=tf.nn.relu), tf.keras.layers.Dense(units=84, activation=tf.nn.relu), tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)])# 模型展示model.summary()
输出结果
# ------------------4. 训练模型------------------# 设置超参数num_epochs = 10 # 训练轮数batch_size = 1000 # 批次大小learning_rate = 0.001 # 学习率
# 定义优化器adam_optimizer = tf.keras.optimizers.Adam(learning_rate)model.compile(optimizer=adam_optimizer,loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])
complie 的用法
with tf.Session() as sess: # 初始化所有变量 init = tf.global_variables_initializer() sess.run(init) model.fit(x=X_train,y=y_train,batch_size=batch_size,epochs=num_epochs) # 评估指标 print(model.evaluate(X_test, y_test)) # loss value & metrics values
输出结果
fit 的用法
# ------------------5. 保存模型------------------model.save('lenet_model.h5')
。
。
from tensorflow.keras.datasets import mnistfrom matplotlib import pyplot as pltimport numpy as npimport tensorflow as tf# ------------------1. 读取 & 查看数据------------------# 读取数据(X_train, y_train), (X_test, y_test) = mnist.load_data()# 数据集查看print(X_train.shape) # (60000, 28, 28)print(y_train.shape) # (60000,)print(X_test.shape) # (10000, 28, 28)print(y_test.shape) # (10000,)print(type(X_train)) # <class 'numpy.ndarray'># 图片显示plt.imshow(X_train[0], cmap="Greys") # 查看第一张图片plt.show()# ------------------2. 数据预处理------------------# 格式转换 (将图片从28*28扩充为32*32)X_train = np.pad(X_train, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)X_test = np.pad(X_test, ((0, 0), (2, 2), (2, 2)), "constant", constant_values=0)print(X_train.shape) # (60000, 32, 32)print(X_test.shape) # (10000, 32, 32)# 数据集格式变换X_train = X_train.astype(np.float32)X_test = X_test.astype(np.float32)# 数据正则化X_train /= 255X_test /= 255# 数据维度转换X_train = np.expand_dims(X_train, axis=-1)X_test = np.expand_dims(X_test, axis=-1)print(X_train.shape) # (60000, 32, 32, 1)print(X_test.shape) # (10000, 32, 32, 1)# ------------------3. 模型建立------------------# 第一个卷积层conv_layer_1 = tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)# 第一个池化层pool_layer_1 = tf.keras.layers.MaxPool2D(pool_size=(2, 2), padding="same")# 第二个卷积层conv_layer_2 = tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding="valid", activation=tf.nn.relu)# 第二个池化层pool_layer_2 = tf.keras.layers.MaxPool2D(padding="same")# 扁平化flatten = tf.keras.layers.Flatten()# 第一个全连接层fc_layer_1 = tf.keras.layers.Dense(units=120, activation=tf.nn.relu)# 第二个全连接层fc_layer_2 = tf.keras.layers.Dense(units=84, activation=tf.nn.softmax)# 输出层output_layer = tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)# 模型实例化model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(filters=6, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu, input_shape=(32, 32, 1)), # relu tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'), tf.keras.layers.Conv2D(filters=16, kernel_size=(5, 5), padding='valid', activation=tf.nn.relu), tf.keras.layers.AveragePooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'), tf.keras.layers.Flatten(), tf.keras.layers.Dense(units=120, activation=tf.nn.relu), tf.keras.layers.Dense(units=84, activation=tf.nn.relu), tf.keras.layers.Dense(units=10, activation=tf.nn.softmax)])# 模型展示model.summary()# ------------------4. 训练模型------------------# 设置超参数num_epochs = 10 # 训练轮数batch_size = 1000 # 批次大小learning_rate = 0.001 # 学习率# 定义优化器adam_optimizer = tf.keras.optimizers.Adam(learning_rate)model.compile(optimizer=adam_optimizer,loss=tf.keras.losses.sparse_categorical_crossentropy,metrics=['accuracy'])with tf.Session() as sess: # 初始化所有变量 init = tf.global_variables_initializer() sess.run(init) model.fit(x=X_train,y=y_train,batch_size=batch_size,epochs=num_epochs) # 评估指标 print(model.evaluate(X_test, y_test)) # loss value & metrics values# ------------------5. 保存模型------------------model.save('lenet_model.h5')
到此这篇关于由浅入深学习TensorFlow MNIST 数据集的文章就介绍到这了,更多相关TensorFlow MNIST 数据集内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/weixin_46274168/article/details/114109017 。
最后此篇关于由浅入深学习TensorFlow MNIST 数据集的文章就讲到这里了,如果你想了解更多关于由浅入深学习TensorFlow MNIST 数据集的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想将模型及其各自训练的权重从 tensorflow.js 转换为标准 tensorflow,但无法弄清楚如何做到这一点,tensorflow.js 的文档对此没有任何说明 我有一个 manifest
我有一个运行良好的 TF 模型,它是用 Python 和 TFlearn 构建的。有没有办法在另一个系统上运行这个模型而不安装 Tensorflow?它已经经过预训练,所以我只需要通过它运行数据。 我
当执行 tensorflow_model_server 二进制文件时,它需要一个模型名称命令行参数,model_name。 如何在训练期间指定模型名称,以便在运行 tensorflow_model_s
我一直在 R 中使用标准包进行生存分析。我知道如何在 TensorFlow 中处理分类问题,例如逻辑回归,但我很难将其映射到生存分析问题。在某种程度上,您有两个输出向量而不是一个输出向量(time_t
Torch7 has a library for generating Gaussian Kernels在一个固定的支持。 Tensorflow 中有什么可比的吗?我看到 these distribu
在Keras中我们可以简单的添加回调,如下所示: self.model.fit(X_train,y_train,callbacks=[Custom_callback]) 回调在doc中定义,但我找不到
我正在寻找一种在 tensorflow 中有条件打印节点的方法,使用下面的示例代码行,其中每 10 个循环计数,它应该在控制台中打印一些东西。但这对我不起作用。谁能建议? 谢谢,哈米德雷萨, epsi
我想使用 tensorflow object detection API 创建我自己的 .tfrecord 文件,并将它们用于训练。该记录将是原始数据集的子集,因此模型将仅检测特定类别。我不明白也无法
我在 TensorFlow 中训练了一个聊天机器人,想保存模型以便使用 TensorFlow.js 将其部署到 Web。我有以下内容 checkpoint = "./chatbot_weights.c
我最近开始学习 Tensorflow,特别是我想使用卷积神经网络进行图像分类。我一直在看官方仓库中的android demo,特别是这个例子:https://github.com/tensorflow
我目前正在研究单图像超分辨率,并且我设法卡住了现有的检查点文件并将其转换为 tensorflow lite。但是,使用 .tflite 文件执行推理时,对一张图像进行上采样所需的时间至少是使用 .ck
我注意到 tensorflow 的 api 中已经有批量标准化函数。我不明白的一件事是如何更改训练和测试之间的程序? 批量归一化在测试和训练期间的作用不同。具体来说,在训练期间使用固定的均值和方差。
我创建了一个模型,该模型将 Mobilenet V2 应用于 Google colab 中的卷积基础层。然后我使用这个命令转换它: path_to_h5 = working_dir + '/Tenso
代码取自:- http://adventuresinmachinelearning.com/python-tensorflow-tutorial/ import tensorflow as tf fr
好了,所以我准备在Tensorflow中运行 tf.nn.softmax_cross_entropy_with_logits() 函数。 据我了解,“logit”应该是概率的张量,每个对应于某个像素的
tensorflow 服务构建依赖于大型 tensorflow ;但我已经成功构建了 tensorflow。所以我想用它。我做这些事情:我更改了 tensorflow 服务 WORKSPACE(org
Tensoflow 嵌入层 ( https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding ) 易于使用, 并且有大量的文
我正在尝试使用非常大的数据集(比我的内存大得多)训练 Tensorflow 模型。 为了充分利用所有可用的训练数据,我正在考虑将它们分成几个小的“分片”,并一次在一个分片上进行训练。 经过一番研究,我
根据 Sutton 的书 - Reinforcement Learning: An Introduction,网络权重的更新方程为: 其中 et 是资格轨迹。 这类似于带有额外 et 的梯度下降更新。
如何根据条件选择执行图表的一部分? 我的网络有一部分只有在 feed_dict 中提供占位符值时才会执行.如果未提供该值,则采用备用路径。我该如何使用 tensorflow 来实现它? 以下是我的代码
我是一名优秀的程序员,十分优秀!