之前在softmax多分类中讲到多用交叉熵作为损失函数,这里顺便写个例子,tensorlflow练手。

# encoding:utf-8
import tensorflow as tf
import input_data ### softmax 回归 # 自动下载安装数据集
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 图片 28 * 28 = 784
x=tf.placeholder('float',[None,784]) # 特征数 784
# 初始化参数
w=tf.Variable(tf.zeros([784,10])) # 10是输出维度,0-9数字的独热编码
b=tf.Variable(tf.zeros([10])) # 模型
y=tf.nn.softmax(tf.matmul(x,w)+b) ### 训练模型
y_=tf.placeholder('float',[None,10]) # 10维 # 损失函数 交叉熵
cross_entropy=-tf.reduce_sum(y_*tf.log(y)) # reduce_sum 计算张量的所有元素之和 所有图片的交叉熵综合 # 优化算法 梯度下降
train_step=tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) # 0.01 学习率 最小化 损失函数 # 初始化变量
init=tf.initialize_all_variables() # 启动图 会话
sess=tf.Session()
sess.run(init) # 初始化变量 # 迭代,训练参数
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100) # 训练集
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) # 模型评估 准确率
correct_predict = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) # 输出布尔值,即预测与真实是否一样
accuracy = tf.reduce_mean(tf.cast(correct_predict, 'float')) # 将布尔值转化成浮点数,然后求平均, 正确/总数
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) # 测试集 0.9194

tensorflow-softmax的更多相关文章

  1. tensorflow softmax应用

    ---恢复内容开始--- 1.softmax函数 2.tensorflow实现例子 #!/usr/bin/env python # -*- coding: utf-8 -*- import tenso ...

  2. 2.tensorflow——Softmax回归

    import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from tensorflow.examples. ...

  3. TensorFlow softmax的互熵损失

    函数:tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None) 功能:这个函数的作用是计算 logits 经 softmax ...

  4. TensorFlow构建卷积神经网络/模型保存与加载/正则化

    TensorFlow 官方文档:https://www.tensorflow.org/api_guides/python/math_ops # Arithmetic Operators import ...

  5. Softmax回归(使用tensorflow)

    # coding:utf8 import numpy as np import cPickle import os import tensorflow as tf class SoftMax: def ...

  6. TensorFlow 入门之手写识别(MNIST) softmax算法

    TensorFlow 入门之手写识别(MNIST) softmax算法 MNIST flyu6 softmax回归 softmax回归算法 TensorFlow实现softmax softmax回归算 ...

  7. 学习笔记TF024:TensorFlow实现Softmax Regression(回归)识别手写数字

    TensorFlow实现Softmax Regression(回归)识别手写数字.MNIST(Mixed National Institute of Standards and Technology ...

  8. TensorFlow MNIST(手写识别 softmax)实例运行

    TensorFlow MNIST(手写识别 softmax)实例运行 首先要有编译环境,并且已经正确的编译安装,关于环境配置参考:http://www.cnblogs.com/dyufei/p/802 ...

  9. TensorFlow实战之Softmax Regression识别手写数字

         关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2018年02月21日 23:10:04所撰写内容(http://blog.c ...

  10. 【TensorFlow篇】--Tensorflow框架实现SoftMax模型识别手写数字集

    一.前述 本文讲述用Tensorflow框架实现SoftMax模型识别手写数字集,来实现多分类. 同时对模型的保存和恢复做下示例. 二.具体原理 代码一:实现代码 #!/usr/bin/python ...

随机推荐

  1. c# 正则表达式如何处理换行符?

    我们要分析网页,把整个网页内容作为匹配源,但是c#的正则表达式是默认以一行为单位的,使用 RegexOptions.Multiline 也没有实质性作用(它知识改变了^和$的行为) 只要在正则表达式前 ...

  2. LeetCode--003--无重复字符的最长子串(java)

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  3. vue select中的option循环的时候,要使用 :value,不能使用 v-model

    <select class="classColor" @change="select" v-model="selectValue"&g ...

  4. 苹果手机marquee显示文字不全,如何解决?

    不能给marquee设定宽度,如果想只显示屏幕宽度的一部分,就给marquee外面包一个div,给外面的div设定宽度,这样就解决了文字显示不全的问题

  5. 数据库SQLserver(课本)

    一.SQL server的部署 1.数据库的基本概念 数据库通常是一个由行和列组成的二维表 数据表中的行通常叫做记录或元祖 数据表中的列通常叫做字段或属性 2.主键和外键 主键:定义主键可以保证数据的 ...

  6. MYSQL 总结——1

    目录 数据类型 1.数值型 2.日期/时间型 3.文本型 数据库 1.创建数据库 2.删除数据库 数据表 1.创建数据表 create 2.删除数据表 drop 3.修改数据表 4.修改表名 5.dr ...

  7. Git创建新项目

    1. git init 2. git remote add origin 3. git pull origin --allow-unrelated-histories 4. git push orig ...

  8. project euler113

    project euler 113 对于1个数字,如果他数位不减或者不增称为bouncy number,比如1233,33210.统计1-10^100中的bouncy number   思路:分为两种 ...

  9. python-day97--git协同开发

    1.协同开发流程 - 在dev的基础上创建三个开发的分支 -每个人都在自己的分支中进行开发 -第一个人开发完成之后把review分支从云端版本库中拉下来 -将个人的分支与review分支合并(确保re ...

  10. Oracle11g温习-第二十章:数据装载 sql loader

    2013年4月27日 星期六 10:53  1. sql loader :将外部数据(比如文本型)数据导入oracle database.(用于数据导入.不同类型数据库数据迁移) 2.sqlloade ...