TensorFlow-多分类单层神经网络softmax

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 8 19:13:09 2018

@author: myhaspl
"""

import tensorflow as tf
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
x=tf.placeholder(tf.float32,[None,784])
w=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10]))
y=tf.nn.softmax(tf.matmul(x,w)+b)
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)
with tf.Session() as sess:
init_op=tf.global_variables_initializer()
sess.run(init_op)
#训练
for i in range(1000):
batch_xs,batch_ys=mnist.train.next_batch(100)
train_step.run({x:batch_xs,y_:batch_ys})
#验证
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print (accuracy.eval({x:mnist.test.images,y_:mnist.test.labels}))

多分类目标通过tf.nn.softmax函数,确保输出为一个向量,所有向量元素均>0 且<1,其和为1每个元素,表示属于该类的概率。

原文地址:http://blog.51cto.com/13959448/2330674

时间: 2024-10-10 13:20:13

TensorFlow-多分类单层神经网络softmax的相关文章

TensorFlow 训练 MNIST (1)—— softmax 单层神经网络

1.MNIST数据集简介 首先通过下面两行代码获取到TensorFlow内置的MNIST数据集: from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets('./data/mnist', one_hot=True) MNIST数据集共有55000(mnist.train.num_examples)张用于训练的数据,对应的有55000个标签:共有10000(mnist.t

2017/7/20 朱兴全教授学术讲座观点与总结第二讲:单个神经元/单层神经网络

一.神经网络的结构 习惯的强势:能量最小化   大脑控制区在人对某一个事情形成习惯后,在该事情发生时,作出判断时不再消耗能量.(能量最小化与误差最小化?我想知道这里的能量与一般的能量函数之间有没有什么联系的地方?) 前向网络:网络中只有输入到输出的连接(下面给出单层和多层前向网络) 非隐藏层中可以比较期望输出与真实输出(注意观察最后一层的独立性,各个输出对权重的调整互不影响) Why RNN? 前后顺序有相关性,时间顺序之间相关性,例如:文本分析. 神经网络(结构.神经元.学习算法)  神经元

计算机潜意识- 单层神经网络(感知器)

1.引子 1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络.他给它起了一个名字--"感知器"(Perceptron)(有的文献翻译成"感知机",下文统一用"感知器"来指代). 感知器是当时首个可以学习的人工神经网络.Rosenblatt现场演示了其学习识别简单图像的过程,在当时的社会引起了轰动. 人们认为已经发现了智能的奥秘,许多学者和科研机构纷纷投入到神经网络的研究中.美国军方大力资助了神经网络的研究,并认为神经网络比

【MATLAB深度学习】单层神经网络

单层神经网络 在神经网络中,当隐藏节点具有线性激活函数时,隐含层将无效化.监督学习的训练,正是一个修正模型以减少模型输出与标准输出之间的误差的过程.神经网络以权重形式存储信息. 根据给定信息修改权重的系统方法被称为学习规则. 1.delta规则 也被称为Adaline规则或者Widrow-Hoff规则,是一种梯度下降的数值方法. 这一规则的基本思想是,权重依据输出节点误差和输入节点值成比例地调整. 2.更新权重的策略 SGD(Stochastic Gradient Descent 随机梯度下降)

Tensorflow学习教程------普通神经网络对mnist数据集分类

首先是不含隐层的神经网络, 输入层是784个神经元 输出层是10个神经元 代码如下 #coding:utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #载入数据集 mnist = input_data.read_data_sets("MNIST_data", one_hot=True) #每个批次的大小 batch_size = 100 #计算一共有多少个批次

学习笔记TF057:TensorFlow MNIST,卷积神经网络、循环神经网络、无监督学习

MNIST 卷积神经网络.https://github.com/nlintz/TensorFlow-Tutorials/blob/master/05_convolutional_net.py .TensorFlow搭建卷积神经网络(CNN)模型,训练MNIST数据集. 构建模型. 定义输入数据,预处理数据.读取数据MNIST,得到训练集图片.标记矩阵,测试集图片标记矩阵.trX.trY.teX.teY 数据矩阵表现.trX.teX形状变为[-1,28,28,1],-1 不考虑输入图片数量,28x

【TensorFlow实战】TensorFlow实现经典卷积神经网络之VGGNet

VGGNet VGGNet是牛津大学计算机视觉组与Google DeepMind公司的研究员一起研发的深度卷积神经网络.VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠3*3的小型卷积核核2*2的最大池化层,VGGNet成功地构建了16~19层的卷积神经网络.VGGNet相比于之前state-of-the-art网络结构,错误率大幅下降,并取得了ILSVRC 2014比赛分类项目的第二名和定位项目的第一名.VGGNet的结构非常简洁,整个网络都是使用了同样大小的卷积尺寸3*3

【TensorFlow实战】TensorFlow实现经典卷积神经网络之Google Inception Net

Google Inception Net 0.前言 Google Inception Net首次出现在ILSVRC 2014比赛中,就以较大优势获得第一名.那届的Inception Net被称为Inception Net V1,它最大的特点就是控制了计算量和参数量的同时,获得了非常好的分类性能--top-5错误率6.67%,只有AlexNet的一半不到.Inception Net V1有22层深,比AlexNet的8层或者VGGNet的19层还要更深.但其计算量只有15亿次浮点运算,同时只有50

79、tensorflow计算一个五层神经网络的正则化损失系数、防止网络过拟合、正则化的思想就是在损失函数中加入刻画模型复杂程度的指标

''' Created on Apr 20, 2017 @author: P0079482 ''' import tensorflow as tf #获取一层神经网络边上的权重,并将这个权重的L2正则化损失加入名称为'losses'的集合中 def get_weight(shape,lambda1): #生成一个变量 var = tf.Variable(tf.random_normal(shape),dtype=tf.float32) #add_to_collection函数将这个新生成变量的L