TensorFlow基础学习——MNIST数据集(1)

from tensorflow.examples.tutorials.mnist import input_data或from tensorflow_core.example.tutorials报错 from tensorflow.examples.tutorials.mnist import input_data,examples标红报错。from tensorflow_core.examples.tutorials.mnist import input_data,tutorials标红报错,终极解决办法。 #报错原因 一般低版本的tensorflow不会报错,高版本的tensorflow,比如2.0版本就会报错。这是因为在tensorflow文件的exampls中缺乏tuorials文件。 #解决办 阅读详情

MNIST数据集是一个NIST数据集的一个子集,它包含了6000张的图片作为训练数据,1000张图片作为训练数据集1000张图作为测试数据集在MNIST数据集中每张照片都代表了0-9中的一个数字,图片的大小为28*28
在这里插入图片描述
用如下代码导入MNIST的数据包:

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("./MNIST_data",one_hot=True)

print(mnist.train.images.shape)
print(mnist.train.labels.shape)
print(mnist.validation.images.shape)
print(mnist.validation.labels.shape)
print(mnist.test.images.shape)
print(mnist.test.labels.shape)
(55000, 784)
(55000, 10)
(5000, 784)
(5000, 10)
(10000, 784)
(10000, 10)

由此可见MNIST数据集是有三部分组成的,即55000个训练数据和标签,5000个验证数据和标签,10000个验证数据和标签组成,每张图片都有对应的标签(0-9),图像数据数据与验证数据都是张量,标签是一种one-hot合适,当表示为”1”时,标签为[0,1,0,0,0,0,0,0,0,0],当标签为"0"时,标签为[1,0,0,0,0,0,0,0,0,0]

MNIST数据集和执行结果如下面代码所示,在之后会对其中一些不是很明白的问题进行解读:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data


# 1.设置输入和输出节点的个数,配置神经网络的参数
INPUT_NODE = 784    # 输入层的节点数。对于 MNIST 数据集,这个就等于图片的像素
OUTPUT_NODE = 10    # 输出层的节点数。等于类别的数目。

# 配置神经网络的参数
LAYER1_NODE = 500   # 隐藏层节点数。这里仅使用一个隐藏层,500 个节点。
BATCH_SIZE = 100    # 一个训练 batch 中的训练数据个数。
                    # 数字越小时,训练过程越接近随机梯度下降;数字越大时,训练越接近梯度下降。
  
# 配置模型相关参数
LEARNING_RATW_BASE = 0.8        # 基础的学习率
LEARNING_RATE_DECAY = 0.99      # 学习率的衰减率
REGULARIZATION_RATE = 0.0001    # 描述模型负责度的正则化项在损失函数中的系数
TRAINING_STEPS = 30000          # 训练轮数
MOVING_AVERAGE_DECAY = 0.99     # 滑动平均衰减率

# 2. 定义辅助函数来计算前向传播结果,使用ReLU做为激活函数。

# 给定神经网络的输入和所有参数,计算神经网络的前向传播结果。
# 这里定义了一个使用 ReLU 激活函数的三层全连接神经网络。
# 通过加入隐藏层实现了多层网络结构,通过 ReLU 激活函数实现了去线性化。
# 这个函数也支持传入用于计算参数平均值的类,这样方便在测试时使用滑动平均模型。

def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):
  # 当没有提供滑动平均类时,直接使用参数当前的取值
  if avg_class == None:
    # 计算隐藏层的前向传播结果,这里使用了 ReLU 激活函数
    layer1 = tf.nn.relu(tf.matmul(input_tensor, weights1) + biases1)

    # 计算输出层的前向传播结果。
    # 因为在计算损失函数时会一并计算 softmax 函数,所以这里不需要加入激活函数。
    # 而且不加入 softmax 不影响预测结果。
    # 因为预测时使用的是不同类别对应节点输出值的相对大小,有没有 softmax 层对最后
    # 分类结果的计算没有影响。于是在计算整个神经网络的前向传播时可以不加入最后的 softmax 层。
    return tf.matmul(layer1, weights2) + biases2

  else:
    # 首先使用 avg_class.average 函数来计算得出变量的滑动平均值,
    # 然后再计算相应的神经网络前向传播结果。
    layer1 = tf.nn.relu(tf.matmul(input_tensor, avg_class.average(
      weights1)) + avg_class.average(biases1))
  return tf.matmul(layer1, avg_class.average(weights2)) + avg_class.average(biases2)


# 3. 定义训练模型的过程
def train(mnist):
  x = tf.placeholder(tf.float32, [None, INPUT_NODE], name='x-input')
  y_ = tf.placeholder(tf.float32, [None, OUTPUT_NODE], name='y-input')

  # 3.1 生成隐藏层的参数。
  weights1 = tf.Variable(tf.truncated_normal(
    [INPUT_NODE, LAYER1_NODE], stddev=0.1))
  biases1 = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))
    
  # 3.2 生成输出层的参数。
  weights2 = tf.Variable(tf.truncated_normal(
    [LAYER1_NODE, OUTPUT_NODE], stddev=0.1))
  biases2 = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))

  # 3.3 计算不含滑动平均类的前向传播结果
  y = inference(x, None, weights1, biases1, weights2, biases2)

  # 3.4 定义训练轮数及相关的滑动平均类
    
  # 定义存储训练轮数。
  # 这个变量不需要计算滑动平均值,所以这里指定这个变量为不可训练的变量(trainable=False)。
  # 在使用 TensorFlow 训练神经网络时,一般会将代表训练轮数的变量指定为不可训练的参数。
  global_step = tf.Variable(0, trainable=False)

  # 定义滑动平均衰减率和训练轮数的变量,初始化滑动平均类。
  variable_averages = tf.train.ExponentialMovingAverage(
    MOVING_AVERAGE_DECAY, global_step)

  # tf.trainable_variables 返回的就是图上集合 GraphKeys.TRAINABLE_VARIABLES
  # 中的元素。这个集合的元素就是所有没有指定 trainable=False 的参数。
    
  variables_averages_op = variable_averages.apply(tf.trainable_variables())
  # 用于更新维护影子变量
  # 计算使用了滑动平均之后的前向传播结果。
  # 滑动平均不会改变变量本身的取值,而是维护一个影子变量来记录其滑动平均值。
  # 所以当需要使用这个滑动平均值时,需要明确调用 average 函数。
  average_y = inference(x, variable_averages, weights1,
    biases1, weights2, biases2)

    
  # 3.5 计算交叉熵及平均值
    
  # 计算交叉熵作为刻画预测值和真实值之间差距的损失函数。
  cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
    logits=y, labels=tf.argmax(y_, 1))             #tf.argmax返回y_中每一行最大值所在的位置
  # 计算在当前 batch 中所有样例的交叉熵平均值。
  cross_entropy_mean = tf.reduce_mean(cross_entropy)

  # 3.6 损失函数的计算
    
  # 计算 L2 正则化损失函数。
  regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE)
  # 计算模型的正则化损失。
  #计算模型的正则化损失,一般只计算神经网络边行权重的正则化损失,而不使用偏置项
  regularization = regularizer(weights1) + regularizer(weights2)
    
  # 总损失等于交叉熵损失和正则化损失的和。
  loss = cross_entropy_mean + regularization
    
  # 3.7 设置指数衰减的学习率。
  learning_rate = tf.train.exponential_decay(
    LEARNING_RATW_BASE,                     # 基础的学习率,随着迭代的进行,更新变量时使用
                                             # 的学习率在这个基础上递减。
    global_step,                            # 当前迭代的轮数
    mnist.train.num_examples / BATCH_SIZE,   # 过完所有的训练数据需要的迭代次数。
    LEARNING_RATE_DECAY                     # 学习率衰减速度
    )


  # 3.8 优化损失函数
  # 使用 tf.train.GradientDescentOptimizer 优化算法来优化损失函数。
  # 注意这里损失函数包含了交叉熵损失和 L2 正则化损失。
  train_step = tf.train.GradientDescentOptimizer(
    learning_rate).minimize(loss, global_step=global_step)
        
  #global_step=global_step实现global_step的自加
  # 3.9 反向传播更新参数和更新每一个参数的滑动平均值
  # 下面两行程序和 train_op = tf.group(train_step, variables_averages_op) 是等价的。
  with tf.control_dependencies([train_step, variables_averages_op]):
    train_op = tf.no_op(name='train')

  # 3.10 计算正确率
    
  # 检验使用了滑动平均模型的神经网络前向传播结果是否正确。tf.argmax(average_y, 1)
  # 计算每一个样例的预测答案。其中 average_y 是一个 batch_size * 10 的二维数组,每一行
  # 表示一个样例的前向传播结果。tf.argmax 的第二个参数 “1” 表示选取最大值的操作仅在第一
  # 个维度中进行,也就是说,只在每一行选取最大值对应的下标。于是得到的结果是一个长度为
  # batch 的一维数组,这个一维数组中的值就表示了每一个样例对应的数字识别结果。
  # tf.equal 判断两个张量的每一维是否相等,如果相等返回 True,否则返回 False)。
  correct_prediction = tf.equal(tf.argmax(average_y, 1), tf.argmax(y_, 1))

  # 这个运算首先将一个布尔型的数值转换为实数型,然后计算平均值。
  # 这个平均值就是模型在这一组数据上的正确率。
  accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

  # 3.11 初始化会话并开始训练过程。
  with tf.Session() as sess:
    #tf.global_variables_initializer().run
    sess.run(tf.global_variables_initializer())
    # 准备验证数据。一般在神经网络的训练过程中会通过验证数据来大致判断停止的条件
    # 和评判训练的效果。
    validate_feed = {
      x: mnist.validation.images,
      y_: mnist.validation.labels
    }
    # 准备测试数据。在真实的应用中,这部分数据再训练时是不可见的,这个数据只是作为
    # 模型优劣的最后评价标准。
    test_feed = {
      x: mnist.test.images,
      y_: mnist.test.labels
    }

    # 迭代地训练神经网络
    for i in range(TRAINING_STEPS):
      # 每 1000 轮输出一次在验证数据集上的测试结果。
      if i % 1000 == 0:
        # 计算滑动平均模型在验证数据上的结果。因为 MNIST 数据集比较小,所以一
        # 次可以处理所有的验证数据。为了计算方便,本样例程序没有将验证数据划分
        # 为更小的 batch。当神经网络模型比较复杂或者验证数据比较大时,太大的
        # batch 会导致计算时间过长甚至发生内存溢出的错误。
        validate_acc = sess.run(accuracy, feed_dict=validate_feed)
        print("%d 次训练后,使用模型进行验证的准确度为 %g" % (i, validate_acc))

        # 产生这一轮使用的一个 batch 的训练数据,并运行训练过程。
        xs, ys = mnist.train.next_batch(BATCH_SIZE)
        sess.run(train_op, feed_dict={x: xs, y_: ys})

        # 在训练结束之后,在测试数据上检测神经网络模型的最终正确率。
        test_acc = sess.run(accuracy, feed_dict=test_feed)
        print("%d 次训练后,使用模型进行测试的准确度为 %g" % (TRAINING_STEPS,test_acc))


# 主程序入口。
#def main(argv=None):
    # 声明处理 MNIST 数据集的类,这个类在初始化时会自动下载数据。
#    mnist = input_data.read_data_sets("./MNIST_data",one_hot=True)
#    train(mnist)

# TensorFlow 提供的一个主程序入口,tf.app.run 会调用上面定义的 main 函数。
#if __name__ == '__main__':
#    tf.app.run()
mnist = input_data.read_data_sets("./MNIST_data",one_hot=True)
train(mnist)

这是MNIST数据集的训练代码和结果

0 次训练后,使用模型进行验证的准确度为 0.1326
1000 次训练后,使用模型进行验证的准确度为 0.978
2000 次训练后,使用模型进行验证的准确度为 0.9828
3000 次训练后,使用模型进行验证的准确度为 0.9818
4000 次训练后,使用模型进行验证的准确度为 0.9842
5000 次训练后,使用模型进行验证的准确度为 0.984
6000 次训练后,使用模型进行验证的准确度为 0.9842
7000 次训练后,使用模型进行验证的准确度为 0.9848
8000 次训练后,使用模型进行验证的准确度为 0.9852
9000 次训练后,使用模型进行验证的准确度为 0.9846
10000 次训练后,使用模型进行验证的准确度为 0.9848
11000 次训练后,使用模型进行验证的准确度为 0.985
12000 次训练后,使用模型进行验证的准确度为 0.9854
13000 次训练后,使用模型进行验证的准确度为 0.9852
14000 次训练后,使用模型进行验证的准确度为 0.9852
15000 次训练后,使用模型进行验证的准确度为 0.9846
16000 次训练后,使用模型进行验证的准确度为 0.9844
17000 次训练后,使用模型进行验证的准确度为 0.9846
18000 次训练后,使用模型进行验证的准确度为 0.9846
19000 次训练后,使用模型进行验证的准确度为 0.9836
20000 次训练后,使用模型进行验证的准确度为 0.9838
21000 次训练后,使用模型进行验证的准确度为 0.985
22000 次训练后,使用模型进行验证的准确度为 0.9848
23000 次训练后,使用模型进行验证的准确度为 0.984
24000 次训练后,使用模型进行验证的准确度为 0.9844
25000 次训练后,使用模型进行验证的准确度为 0.9848
26000 次训练后,使用模型进行验证的准确度为 0.9842
27000 次训练后,使用模型进行验证的准确度为 0.9846
28000 次训练后,使用模型进行验证的准确度为 0.9852
29000 次训练后,使用模型进行验证的准确度为 0.9852
30000 次训练后,使用模型进行测试的准确度为 0.9832
 # 计算交叉熵作为刻画预测值和真实值之间差距的损失函数。
 cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
        logits=y, labels=tf.argmax(y_, 1))             #tf.argmax返回y_中每一行最大值所在的位置
 # 计算在当前 batch 中所有样例的交叉熵平均值。

关于这段代码中的这是一个求交叉熵的过程, labels=tf.argmax(y_, 1)所得是y_中每一行最大值所在的位置,也就是0-9之间的数字,
tf.nn.sparse_softmax_cross_entropy_with_logits()输入的label格式为一维的向量,所以首先需要将其转化为one-hot格式的编码,例如如果分量为3,代表该样本属于第三类,其对应的one-hot格式label为[0,0,0,1,…0],而如果你的label已经是one-hot格式,则可以使用tf.nn.softmax_cross_entropy_with_logits()函数来进行softmax和loss的计算。也就是这里的代码与下面两行的作用相同:

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(
        logits=y, labels=y_)   

关于global_step部分的代码:

  # 在使用 TensorFlow 训练神经网络时,一般会将代表训练轮数的变量指定为不可训练的参数。
    global_step = tf.Variable(0, trainable=False)

    # 定义滑动平均衰减率和训练轮数的变量,初始化滑动平均类。
    variable_averages = tf.train.ExponentialMovingAverage(
        MOVING_AVERAGE_DECAY, global_step)

    # tf.trainable_variables 返回的就是图上集合 GraphKeys.TRAINABLE_VARIABLES
    # 中的元素。这个集合的元素就是所有没有指定 trainable=False 的参数。
    
    variables_averages_op = variable_averages.apply(tf.trainable_variables())

    # 计算使用了滑动平均之后的前向传播结果。
    # 滑动平均不会改变变量本身的取值,而是维护一个影子变量来记录其滑动平均值。
    # 所以当需要使用这个滑动平均值时,需要明确调用 average 函数。
    average_y = inference(x, variable_averages, weights1,
                          biases1, weights2, biases2)

下面是别处参考解释的代码:

import tensorflow as tf

v1 = tf.Variable(0.0, dtype=tf.float32)
step = tf.Variable(0, trainable=False)

# 定义一个滑动平均的类(class)。初始化时给定了衰减率(0.99)和控制衰减率的变量 step。

ema = tf.train.ExponentialMovingAverage(0.99, step)

# 定义一个更新变量滑动平均的操作。这里需要给定一个列表,每次执行这个操作时 

# 这个列表中的变量都会被更新。

maintain_averages_op = ema.apply([v1])             
with tf.Session() as sess:

    init_op = tf.initialize_all_variables()

sess.run(init_op)

    # 更新变量 v1 的值到 5。

sess.run(tf.assign(v1, 5))

    # 更新 v1 的滑动平均值。衰减率为 min{0.99,(1+step)/(10+step)= 0.1}=0.1,

    # 所以 v1 的滑动平均会被更新为 0.10+0.95=4.5。

sess.run(maintain_averages_op)

    print sess.run([v1, ema.average(v1)])        #  输出 [5.0, 4.5]
    # 更新 step 的值为 10000。

    sess.run(tf.assign(step, 10000))  

    # 更新 v1 的值为 10。

sess.run(tf.assign(v1, 10))

    # 更新 v1 的滑动平均值。衰减率为 min{0.99,(1+step)/(10+step)  0.999}=0.99,

    # 所以 v1 的滑动平均会被更新为 0.994.5+0.0110=4.555。

    sess.run(maintain_averages_op)

print sess.run([v1, ema.average(v1)])      #  输出 [10.0, 4.5549998]
MNIST:tensorflow from tensorflow.examples.tutorials.mnist import input_data # -*- encoding:utf-8 -*- import os import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from tensorflow.python.client import device_lib # print(device_lib.list_local_de... 阅读详情

相关推荐

Tensorflow第一个mnist数据集(理解)

数据集 分为两部分 6000行的训练数据集 (mnist.train) 1000行的测试数据集(mnist.test) 在机器学习模型设计时必须要有一个单独的测试数据集不用来训练而是用来评估这个模型的性能,从而更加容易把设计的模型推广到其他数据集上 (泛化) 每个mnist数据单元有两部分组成 手写数字的图片(xs)和一个与之对应的标签(ys)训练数据集和测试数据集都包含xs ys

My_ 1068

tensorflow 处理mnist手写体数据集(训练+预测代码)

一,tensorflow提供了自动下载mnist数据集的接口,若下载不了,请尝试翻墙后再试,或者从其他网站下载。 二,训练代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import numpy as np import os """---------------...

ZJE 5288

Tensorflow学习笔记1-利用神经网络对Fashion MNIST数据集分类

这里写自定义目录标题引言图像的数学表示Fashion MNIST 数据集数据集导入函数load_data将数据显示为图片plt.imshow()模型训练、评估及预测完整代码参考 引言 最近尝试学习tensorflow框架,计划按照教程进行操作,理解机制及使用的重要函数。任务1是:训练首个神经网络:基本分类。这一部分是训练神经网络来对fashionminst的服饰图像进行分类,可以借此案例熟悉计算机...

weixin_38103341的博客 1808

from tensorflow.examples.tutorials.mnist import input_data 出错

在使用tensorflow实现辨别手写体的过程中遇到了一下错误 那么你则可以看下你当前环境下的TensorFlow的example中是否有tutorials文件或是否有example文件夹 进入后如果发现,没有则去此链接中进行下载,提取码:1234;然后粘贴到对应位置即可 链接:https://pan.baidu.com/s/1oZscJcbaVfClpsAHffWLfg 提取码:1234 ...

qq_39444290的博客 2355

5.1tensorflow5.1神经网络调参实现mnist数据集分类正确率98%以上(实现动态学习率调整)

目录tensorflow简单介绍代码拆分(每个代码块可以放到一个jupyter的cell里)导入tensorflow及相关包加载数据、定义批次定义网络结构定义损失函数、优化器、评价指标等模型训练完整代码 整理不易,有条件的点个关注、点个赞呗!感恩各位大哥! tensorflow简单介绍 tensor采用图运算的方式搭建并训练深度学习网络,该部分使用的库包版本为tensorflow==1.14.0 代码拆分(每个代码块可以放到一个jupyter的cell里) 导入tensorflow及相关包 import t

qq_48455792的博客 693

深度学习:不调TensorFlow,自己写神经网络学习MNIST数据集(1)—基础版(正确率96%~97%)

嗷嗷

CxsGhost的博客 993

mnist数据集_TensorFlow学习Program1——14.逻辑回归处理MNIST数据集

本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集。(来源https://www.tensorflow.org/get_started/mnist/beginners)大部分人已经对 MNIST 数据集很熟悉了,它是机器学习的基础,包含手写数字的图像及其标签来说明它是哪个数字。对于逻辑回归,对输出 y 使用独热(one-ho...

weixin_39976153的博客 94

Xilinx IP库在Modelsim/Questasim中的高效仿真实践

本文详细介绍了在Modelsim/Questasim中高效仿真Xilinx FPGA设计的核心方法。针对仿真时常见的IP核缺失错误,重点解析了两种主流解决方案:使用Vivado的compile_simlib命令自动编译完整仿真库,以及利用export_simulation命令为特定工程生成仿真脚本。文章还提供了手动配置库的深入理解、实战排错步骤及高级避坑指南,帮助用户构建稳定、高效的独立仿真环境。

sony5的博客 1230

本宝宝的Tensorflow学习记录(1)MNIST手写数据集

来优快云发的第一个文章!想想还有点小激动。最近刚开始接触Tensorflow,写点文章记录一下,总不能过段时间又忘得差不多了,就比如说Pytorch…我比较絮叨,这个也是学习记录,不是严谨的技术文档,如果有大佬一不小心发现了错误,请务必提出来鸭QAQ MNIST手写数据集算是深度学习入门最简单的一个小练习了叭,但是我第一次做还是出现了几个小问题。这里记录一下我遇到的问题和解决方法,还有对着教程(...

weixin_44081689的博客 129

NVIDIA驱动装好了,Gazebo为啥还是卡?手把手教你用optirun搞定GPU加速

本文详细解析了NVIDIA驱动安装后Gazebo仍卡顿的原因,并提供三步精准诊断与GPU加速实战方案。通过optirun快速启用GPU加速,解决OpenGL与显示服务器的配置问题,显著提升仿真性能。适用于ROS、PX4等开发环境,帮助用户充分利用显卡性能。

weixin_30379531的博客 465

Xilinx UltraScale+ FPGA实战:手把手教你实现USB3.0设备开发(附原理图+代码)

本文详细介绍了如何使用Xilinx UltraScale+ FPGA开发USB3.0设备,涵盖硬件设计、Vivado工程配置、Petalinux系统定制及功能测试全流程。通过实战案例和优化技巧,帮助开发者快速掌握高速数据传输实现方法,提升嵌入式系统开发效率。

weixin_29159995的博客 209

tensorflow2版本学习教程1-mnist数据集手写字体

import tensorflow as tf # 载入并准备好 MNIST 数据集。将样本从整数转换为浮点数 mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 # 将模型的各层堆叠起来,以搭建 tf.keras.Sequential 模型。为训练选择优化器和损失函数 mode.

qingfengxd1的博客 512

保姆级教程:手把手配置MAX9295/9296 GMSL2-CSI2链路,搞定4LAN/1LAN模式与常见调试

本文提供MAX9295/9296 GMSL2-CSI2链路的详细配置教程,涵盖4LAN和1LAN模式的硬件连接、寄存器配置及调试技巧。通过实战案例和代码示例,帮助开发者快速实现高带宽视频传输,解决常见问题如信号同步和功耗优化,适用于车载摄像头和机器人视觉系统开发。

weixin_42561143的博客 434

tensorflow学习——(fashion_mnist数据集)基本分类first_1.py——2

1.导入模块,统一编码 2.导入tensorflow和tf.keras 3.导入辅助库 4.导入fashion_mnist数据集 5.探索数据 6.数据预处理 7.构建模型,设置网络层 8.编译模型(损失函数、优化器、评价方式) 9.训练模型

qq_42530332的博客 450

从Gcode命令看3D打印机的‘大脑’:Marlin/Klipper固件是如何执行你的指令的?

本文深入解析3D打印机固件Marlin和Klipper如何执行Gcode指令,从语法解析到运动控制算法,再到温度管理,详细揭示了从指令到物理动作的转化过程。通过对比两大固件的设计哲学和性能优化技巧,帮助用户更好地理解和调优3D打印机的核心控制系统。

weixin_26763955的博客 382

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 68

【深度学习】用LSTM识别手写数字MNIST数据集(tensorflow1.x实现)

网络结构: 就是LSTM后面再加一层全连接层。 输入输出分析: MNIST数据集详解:点击查看MNIST详解 数据集中的手写数字是个(28,28)的灰度像素二维数组。 在此可以将其行向量看做是连续的28个时间序列,故代码中TIME_STEP=28,每一行就是LSTM在时间t的输入其输入数据的维度INPUT_SIZE = 28 代码中NUM_UNITS = 128 表示LSTM的输出h_t的维度是128,具体见下图,其中num_units就是输出维度。 代码: import tensor

东西山海关 954

主成分分析(PCA)简洁高效MATLAB实现详解

本文介绍了一个简洁高效的PCA算法实现。该实现通过SVD分解计算主成分,避免了显式协方差矩阵计算,支持两种降维方式:固定维度或按能量比例自动选择。核心步骤包括数据中心化、SVD分解和维度选择,代码量少但功能完整,适用于数据预处理、降维和特征提取等任务。实现中考虑了稀疏矩阵转换、默认参数处理等细节,可直接应用于MATLAB环境。

m0_62153576的博客 64

[ MOOC课程学习 ] 人工智能实践:Tensorflow笔记_CH5_1 MNIST 数据集介绍

MNIST 数据集介绍 mnist 数据集:包含 7 万张黑底白字手写数字图片,其中 55000 张为训练集,5000 张为验证集,10000 张为测试集。 每张图片大小为 28*28 像素,图片中纯黑色像素值为 0,纯白色像素值为 1。 数据集的标签是长度为 10 的一维数组,数组中每个元素索引号表示对应数字出现的概率。 在将 mnist 数据集作为输入喂入神经网络时,需先将数据集中每...

RanMW 526

STM32入门教程:智能马桶盖控制

通过编写相应的代码,您可以根据需要实现其他功能,例如座圈温度调节和液晶显示屏显示等。初始化配置 首先,使用STM32CubeMX创建一个新的工程,并选择您所使用的STM32单片机型号。智能马桶盖是一种集成了多种功能的智能家居设备,通过控制芯片来实现自动冲水、座圈加热、座圈温度调节等功能。在本教程中,我们将使用STM32系列单片机来控制智能马桶盖的各个功能。以上代码演示了如何通过STM32的GPIO控制引脚来控制智能马桶盖的冲水和座圈加热功能。写代码 接下来,我们将通过编写代码来控制智能马桶盖的各个功能。

2401_85258012的博客 657

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TensorFlow1.0系统学习(三)————使用传统神经网络和Softmax函数训练MNIST数据集

文章目录一、MNIST数据集的介绍二、构建简单的网络三、构建代码四、优化程序 一、MNIST数据集的介绍 数据集下载地址:http://yann.lecun.com/exdb/mnist/ 数据集分为两部分:60000行的训练集(mnist.train),10000行的测试集(mnist.test) 二、构建简单的网络 构建一个简单的网络: Softmax函数: 三、构建代码 import...

qq_36414085的博客 431

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

《2020/02/17》tensorflow学习系列1------读取mnist数据集及全连接神经网络训练

TensorFlow中文社区 MNIST数据集介绍及读取。 搭建全连接神经网络 ps:仅供自己学习使用 MNIST数据集介绍 MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。 下载 官方网站 http://yann.lecun.com/exdb/mnist/ 一共4个文件,训练集、训...

guoxiaozhong的博客 487

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Mnist数据集简介

1,基本概念 MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。而TensorFlow的封装让使用MNIST数据集变得更加方便。MNIST数据集是NIST数据集的一个子集,MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取, 它包含了四个部分: (1)Training set images: trai...

qq_43660987的博客 8054

TensorFlow 2.0 快速导入MNIST数据集(附代码)

TensorFlow 2.0 快速导入MNIST数据集 由于当初下载的Tensorflow是2.0版本的与《智能通信:基于深度学习的物理层设计》一书的版本不兼容,在第三章中导入MNIST数据中出现问题。 在Tensorflow1.0中导入数据库用如下代码 由于版本不兼容,出现波浪线错误 在Tensorflow2.0中可以用如下代码导入MNIST数据集 结果如下 ` ...

abc123mma的博客 3238

tensorflow学习笔记(北京大学) tf5_1minst_forward.py 完全解析 mnist数据集

#coding:utf-8 #tensorflow学习笔记(北京大学) tf5_1minst_forward.py 完全解析 mnist数据集 #QQ群:476842922(欢迎加群讨论学习 import tensorflow as tf #网络输入节点为784个(代表每张输入图片的像素个数) INPUT_NODE = 784 #输出节点为10个(表示输出为数字0-9的十分类) OUTPUT_N...

weixin_33595571的博客 763

图像分类数据集(Fashion-MNIST)tensorflow2.1

图像分类数据集(Fashion-MNIST) xiaoyao 动手学深度学习 tensorflow2.1.0 在介绍softmax回归的实现前先引入一个多类图像分类数据集。它将在后面的章节中被多次使用,以方便我们观察比较算法之间在模型精度和计算效率上的区别。图像分类数据集中最常用的是手写数字识别数据集MNIST [1]。但大部分模型在MNIST上的分类精度都超过了95%。为了更直观地观察算法之间的差异,我们将使用一个图像内容更加复杂的数据集Fashion-MNIST [2]。 获取数据集 首先导入需要的包

AIHUBEI的博客 1004
上一篇: tensorflow基础学习—滑动平均模型
下一篇: tensorflow基础学习——变量管理—tf.variable_scope()
two_apples
博客等级 码龄10年 108粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值