Tensorflow2.0+Tensorflow2.1+mnist手写体识别双版本+预处理单个图片测试

最近才开始学机器学习,看Tensorflow实战Google看的真是头疼,全是老代码,都得自己手动解决。现在终于把书上手写体识别的一整套代码都改完了,2.1版本实测能跑,献给报错的同学!

1.首先是书上出现的第一个完全体代码

没有注释看不懂的看这个链接! 不同的地方是为了能在2.1跑,以及文件路径要改成我自己的
Tensorflow学习–最佳的深度学习实践案例
要想自己手动升级代码到2.0版本的同学可以输入

tf_upgrade_v2 --infile ***.py --outfile ***_update.py

星号改成文件名,在控制台输入,控制台的位置要在你要升级的文件的位置,这个命令会把文件名.py修改后
,生成一个文件名_update.py的文件,就是修改完的文件。
然后打开修改完的开头加入下面代码,禁用动态就行了。

tf.compat.v1.disable_v2_behavior()

对于找不到tutorials的人,看这个链接!
Tensorflow 2.0 !!! No module named ‘tensorflow.examples.tutorials’
其实就是点进去,找到他的微云,下载tutorials,然后拷贝到\Lib\site-packages\tensorflow_core\examples
这个Lib的位置在哪,要看你怎么装的环境,比如我用的Anaconda3,还装了虚拟环境起名叫tsfgpu就在
Anaconda3\envs\tsfgpu\Lib\site-packages\tensorflow_core\examples

mnist数据集不知道放哪,不知道在哪的
如何导入MNIST数据集

下面是改完的全代码,你想跑的话把涉及到的路径改了就行

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

tf.compat.v1.disable_v2_behavior()

INPUT_NODE = 784
OUTPUT_NODE = 10
LAYER1_NODE = 500
BATCH_SIZE = 100
LEARNING_RATE_BASE = 0.8
LEARNING_RATE_DECAY = 0.99
REGULARIZATION_RATE = 0.0001
TRAINING_STEPS = 30000
MOVING_AVERAGE_DECAY = 0.99

def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):

    if avg_class == None:
        layer1 = tf.nn.relu(tf.matmul(input_tensor, weights1) + biases1)
        return tf.matmul(layer1, weights2) + biases2

    else:
        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)

def train(mnist):

    x = tf.compat.v1.placeholder(dtype=tf.float32, shape=[None, INPUT_NODE], name='x-input')
    y_ = tf.compat.v1.placeholder(dtype=tf.float32, shape=[None, OUTPUT_NODE], name='y-input')

    weights1 = tf.Variable(tf.random.truncated_normal([INPUT_NODE, LAYER1_NODE], stddev=0.1))
    biases1 = tf.Variable(tf.constant(0.1, shape=[1, LAYER1_NODE]))

    weights2 = tf.Variable(tf.random.truncated_normal([LAYER1_NODE, OUTPUT_NODE], stddev=0.1))
    biases2 = tf.Variable(tf.constant(0.1, shape=[1, OUTPUT_NODE]))

    y = inference(x, None, weights1, biases1, weights2, biases2)

    global_step = tf.Variable(0, trainable=False)

    variable_averages = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY, global_step)

    variables_averages_op = variable_averages.apply(tf.compat.v1.trainable_variables())

    average_y = inference(x, variable_averages, weights1, biases1, weights2, biases2)

    cross_entropy = tf.nn.sparse_sof
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值