Tensorflow实战

Posted 我好像在哪见过你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow实战相关的知识,希望对你有一定的参考价值。

一、环境配置:

  我并没有按照书上的安装方法去安装Tensorflow,选择了一种偷懒的方式,因为先安装了Anaconda,所以直接:conda install tensorflow。因为台式机是集成显卡,没有安装NVDIA的显卡,所以没有使用GPU版本的。目前看起来没什么问题,但是肯定还是要重装的。

二、简单的例子:

  书中将Tensorflow实现Softmax Regression识别手写数字比作编程中的"Hello World",可见其重要性,所以还是认认真真的写了一遍。

  使用的数据库是MNIST的数据库。可以直接在官网中下到,下载完成后不需要解压。也可以使用Python代码进行下载。

技术分享图片
1 from tensorflow.examples.tutorials.mnist import input_data
2 mnist = input_data.read_data_sets(MNIST_data, one_hot=True)
View Code

  这样就可以把数据集放在代码存放位置的 MNIST_data 目录下,里面就是四个数据集,和在官网直接下载是一样的。

  之后就开是用到Tensorflow了。

  数据集的每一张是28*28像素大小的灰度图片,所以有一个784的一维向量,所有的数据集在一起就是一个55000*784的Tensor,然后将label也进行编码,得到 5500 * 10 的labels的Tensor。

  处理好数据集之后接着就是对于算法的设计了,这里采用的是:Softmax Regression算法。好吧,百度找了一圈,都是关于公式的证明什么的,无非就是想说明,将分类问题转换为概率问题,取最大概率,从而判断其分类, 之后就是一堆公式的转换了。数学公式比较难写下来,我要在准备一下,所以先上代码了。

# -*- coding: utf-8 -*-
"""
Created on Thu Jan 11 14:03:39 2018

@author: TulLing
"""

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets(MNIST_data, one_hot=True)

# =============================================================================
# print(mnist.train.images.shape,mnist.train.labels.shape)
# print(mnist.test.images.shape,mnist.test.labels.shape)
# print(mnist.validation.images.shape,mnist.validation.labels.shape)
# =============================================================================

import tensorflow as tf

sess =tf.InteractiveSession()
x = tf.placeholder(tf.float32,[None,784])
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

# =============================================================================
# print(x)
# print(w)
# print(b)
# =============================================================================
# Y
y = tf.nn.softmax(tf.matmul(x,W) + b)
# print(y)
#Y的导数
y_ = tf.placeholder(tf.float32,[None,10])
#损失函数的定义
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
tf.global_variables_initializer().run()

for i in range(1000):
    batch_xs,bathc_ys = mnist.train.next_batch(100)
    train_step.run({x:batch_xs,y_: bathc_ys})
correct_prediction = tf.equal(tf.arg_max(y,1),tf.arg_max(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print(accuracy.eval({x:mnist.test.images,y_:mnist.test.labels}))

 

以上是关于Tensorflow实战的主要内容,如果未能解决你的问题,请参考以下文章

《TensorFlow实战》中文版PDF+源代码

分享《TensorFlow实战》中文版PDF+源代码

学习TF:《TensorFlow技术解析与实战》PDF+代码

分享《TensorFlow实战》+PDF+源码+黄文竖

《TensorFlow技术解析与实战》高清中文PDF+源代码

《TensorFlow技术解析与实战》高清中文PDF+源代码