tensorflow 学习笔记 多层感知机
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 9 19:20:51 2017 @author: Jarvis
"""
'''
tnesorflow 做机器学习的几个步骤
1.定义公式
2.定义loss function,选择优化器,并制定优化器优化loss
3.迭代地对数据进行训练
4。在测试集或验证集对准确率进行评测 ''' import tensorflow as tf
import pandas as pd
import random
#自己定义的一个选取batch进行训练的一个取batch函数
def next_batch(mnist, num,ilen = 55):
size = len(mnist)
selected_n = set([]) while(len(selected_n) < num):
t = random.choice(range(size))
selected_n.add(t)
l = list(selected_n) batch_xs = []
batch_ys = [] batch_xs = mnist.iloc[l,range(2,54)] batch_ys = mnist.iloc[l,range(54,62)]
return batch_xs,batch_ys #对数据进行读取
org_mnist = pd.read_csv("NDVI_NDWI.csv",header = None,encoding = 'gbk')
mnist = pd.get_dummies(org_mnist)
#创建session
#input_data.read_data_sets("MNIST_data/",one_hot = True)
sess = tf.InteractiveSession() #定义算法公式,在此处就是神经网络的结构方式
in_units = 52#每一条instance具有52个输入
h1_units = 30
h2_units = 20
h3_units = 10
h4_units = 5 #tf.truncated_normal是正态分布的一个东东,主要用于初始化一些W矩阵
W1 = tf.Variable(tf.truncated_normal([in_units,h1_units],stddev = 0.1))
b1 = tf.Variable(tf.zeros([h1_units]))
W2 = tf.Variable(tf.zeros([h1_units,h2_units]))#[h1_units,8]
b2 = tf.Variable(tf.zeros([h2_units]))#
W3 = tf.Variable(tf.zeros([h2_units,h3_units]))
b3 = tf.Variable(tf.zeros([h3_units]))
W4 = tf.Variable(tf.zeros([h3_units,8]))
b4 = tf.Variable(tf.zeros([8])) '''
W4 = tf.Variable(tf.zeros([h3_units,h4_units]))
b4 = tf.Variable(tf.zeros([h4_units]))
W5 = tf.Variable(tf.zeros([h4_units,8]))
b5 = tf.Variable(tf.zeros([8]))
'''
x = tf.placeholder(tf.float32,[None, in_units])
keep_prob = tf.placeholder(tf.float32)#dropout 的比例 keep_prob hidden1 = tf.nn.sigmoid(tf.matmul(x,W1)+b1)
hidden1_drop = tf.nn.dropout(hidden1,keep_prob)
hidden2 = tf.nn.sigmoid(tf.matmul(hidden1_drop,W2)+b2)
hidden2_drop = tf.nn.dropout(hidden2,keep_prob)
hidden3 = tf.nn.sigmoid(tf.matmul(hidden2_drop,W3)+b3)
hidden3_drop = tf.nn.dropout(hidden3,keep_prob)
#hidden4 = tf.nn.sigmoid(tf.matmul(hidden3_drop,W4)+b4)
#hidden4_drop = tf.nn.dropout(hidden4,keep_prob) y = tf.nn.softmax(tf.matmul(hidden3_drop,W4)+b4)
y_ = tf.placeholder(tf.float32,[None,8])#[None,10]
#设置优化函数
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))
train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy) tf.global_variables_initializer().run() for i in range(2010):#
batch_xs, batch_ys = next_batch(mnist,1000)#1000 3
train_step.run( {x : batch_xs, y_ : batch_ys,keep_prob: 1}) correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
batch_xs, batch_ys = next_batch(mnist,10000)
print(accuracy.eval({x:batch_xs,y_:batch_ys,keep_prob:1.0}))
tensorflow 学习笔记 多层感知机的更多相关文章
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- TensorFlow学习笔记4-线性代数基础
TensorFlow学习笔记4-线性代数基础 本笔记内容为"AI深度学习".内容主要参考<Deep Learning>中文版. \(X\)表示训练集的设计矩阵,其大小为 ...
- 深度学习-tensorflow学习笔记(2)-MNIST手写字体识别
深度学习-tensorflow学习笔记(2)-MNIST手写字体识别超级详细版 这是tf入门的第一个例子.minst应该是内置的数据集. 前置知识在学习笔记(1)里面讲过了 这里直接上代码 # -*- ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——VGGNet
2014年,牛津大学计算机视觉组(Visual Geometry Group)和 Google DeepMind 公司的研究员一起研发了新的深度卷积神经网络:VGGNet ,并取得了ILSVRC201 ...
- Tensorflow学习笔记No.4.1
使用CNN卷积神经网络(1) 简单介绍CNN卷积神经网络的概念和原理. 已经了解的小伙伴可以跳转到Tensorflow学习笔记No.4.2学习如和用Tensorflow实现简单的卷积神经网络. 1.C ...
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
随机推荐
- 阻塞IO
服务端 from socket import * server = socket(AF_INET,SOCK_STREAM) server.bind(('127.0.0.1',8080)) server ...
- word2vec 在 非 自然语言处理 (NLP) 领域的应用
word2vec 本来就是用来解决自然语言处理问题的,它在 NLP 中的应用是显然的. 比如,你可以直接用它来寻找相关词.发现新词.命名实体识别.信息索引.情感分析等:你也可以将词向量作为其他模型的输 ...
- IT 圈里有哪些经常被读错的词?
原文链接:IT 圈里有哪些经常被读错的词? ()标相应英文单词[]标音标 =====公司/产品名===== Youtube (You-tube [tju:b]) 念 优tiu啵 不念 优吐毙Skype ...
- 【转】缓存淘汰算法系列之1——LRU类
原文地址:http://www.360doc.com/content/13/0805/15/13247663_304901967.shtml 参考地址(一系列关于缓存的,后面几篇也都在这里有):htt ...
- MongoDB关系与数据库引用
MongoDB关系: MongoDB 的关系表示多个文档之间在逻辑上的相互联系.文档间可以通过嵌入和引用来建立联系. 1. 嵌入关系: 形式:把一个文档嵌入到另一个文档中. 优点:数据保存在单一的文档 ...
- VNC 远程连接vmware下centOS7
VNC ( Virtual Network Computing)是一个linux下提供远程桌面支持的服务,类似于windows下的远程桌面服务,本来我是准备用xmanager来远程连我虚拟机中的cen ...
- 使用selenium webdriver+beautifulsoup+跳转frame,实现模拟点击网页下一页按钮,抓取网页数据
记录一次快速实现的python爬虫,想要抓取中财网数据引擎的新三板板块下面所有股票的公司档案,网址为http://data.cfi.cn/data_ndkA0A1934A1935A1986A1995. ...
- MySQL(十六)之MySQL用户管理
一.MySQL用户管理概述 MySQL是一个多用户的数据库,MYSQL的用户可以分为两大类: 超级管理员用户(root),拥有全部权限 普通用户,由root创建,普通用户只拥有root所分配的权限 二 ...
- 总结:PyQt5自定义信号源
定义一个信号源有4个方面要注意: 1.定义信号源 A = pyqtSignal([str], [int,str]) 这里特别使用信号源重载的情况加以说明.如上就是信号源A的重载,一个可以发送str参数 ...
- javascript中toString和valueOf方法的区别
toString():将对象转为字符串 valueOf():获取对象的原始值, 1.针对基本类型的变量:如在string,number,boolean类型的变量上调用这两个方法时,直接返回原始值,即变 ...