文档章节

小白学Tensorflow之简单神经网络

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:26
字数 504
阅读 3
收藏 0

在这篇博客中,我们将利用Tensorflow搭建一个简单的三层神经网络,分别是一个输入层,一个隐藏层和一个输出层。并且,我们采用sigmoid函数作为激活函数。
第一,我们先构建神经网络模型,其中w_layer_1是输入层到隐藏层之间的连接矩阵,然后用sigmoid函数来作为激活函数,w_layer_2是隐藏层到输出层之间的连接矩阵。

# 定义输入层到隐藏层之间的连接矩阵
w_layer_1 = init_weights([784, 625])

# 定义隐藏层到输出层之间的连接矩阵
w_layer_2 = init_weights([625, 10])

def model(X, w_layer_1, w_layer_2): 
# 我们采用 sigmoid 函数来作为激活函数
  h = tf.nn.sigmoid(tf.matmul(X, w_layer_1)) 
  return tf.matmul(h, w_layer_2)

第二,我们还是采用softmax和交叉熵来训练我们的模型。

# 训练模型,我们计算交叉熵的平均值和采用梯度下降法来训练
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y))
learning_rate = 0.01
train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

完整代码,如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import numpy as np
import tensorflow as tf 
import input_data

def init_weights(shape):
    return tf.Variable(tf.random_normal(shape, stddev = 0.01))

def model(X, w_layer_1, w_layer_2):

    # 我们采用 sigmoid 函数来作为激活函数
    h = tf.nn.sigmoid(tf.matmul(X, w_layer_1))
    return tf.matmul(h, w_layer_2)

# 导入数据
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
trX, trY, teX, teY = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels

X = tf.placeholder("float", [None, 784])
Y = tf.placeholder("float", [None, 10])

# 定义输入层到隐藏层之间的连接矩阵
w_layer_1 = init_weights([784, 625])

# 定义隐藏层到输出层之间的连接矩阵
w_layer_2 = init_weights([625, 10])

# 搭建模型
py_x = model(X, w_layer_1, w_layer_2)

# 训练模型,我们计算交叉熵的平均值和采用梯度下降法来训练
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y))
learning_rate = 0.01
train_op = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
predict_op = tf.argmax(py_x, 1)

with tf.Session() as sess:

    init = tf.initialize_all_variables()
    sess.run(init)

    for i in xrange(100):
        for start, end in zip(range(0, len(trX), 128), range(128, len(trX), 128)):
            sess.run(train_op, feed_dict = {X: trX[start:end], Y: trY[start:end]})
        print i, np.mean(np.argmax(teY, axis = 1) == sess.run(predict_op, feed_dict = {X: teX, Y: teY}))

本文转载自:http://www.jianshu.com/p/8c3b63f7d999

共有 人打赏支持
AllenOR灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
史上最全TensorFlow学习资源汇总

来源 悦动智能(公众号ID:aibbtcom) 本篇文章将为大家总结TensorFlow纯干货学习资源,非常适合新手学习,建议大家收藏。 ▌一 、TensorFlow教程资源 1)适合初学者的TensorFlow教程和代码示...

悦动智能
2018/04/12
0
0
【干货】史上最全的Tensorflow学习资源汇总,速藏!

一 、Tensorflow教程资源: 1)适合初学者的Tensorflow教程和代码示例:(https://github.com/aymericdamien/TensorFlow-Examples)该教程不光提供了一些经典的数据集,更是从实现最简单的“Hel...

技术小能手
2018/04/16
0
0
今晚免费公开课|1小时入门TensorFlow,更有大咖手把手带你玩实战

TensorFlow 是 Google Brain 团队开发的强大的机器学习开源软件库,也是目前最流行的深度学习框架。可以说,要学机器学习和深度学习,就一定要掌握 TensorFlow。 TensorFlow 之所以受到如此欢...

Caicloud
2017/08/15
0
0
送书&优惠丨对深度学习感兴趣的你,不了解这些就太OUT了!

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 TensorFlow是什么? TensorFlow的前身是谷歌大脑(google brain)团队研发的DistBelief。自创建以来,它便被...

csdnsevenn
2018/05/03
0
0
入门 | 关于TensorFlow,你应该了解的9件事

  选自hackernoon   作者:Cassie Kozyrkov   机器之心编译   参与:高璇、路      谷歌开发技术推广工程师 Laurence Moroney 在 Google Cloud Next 大会上进行了一段 42 分钟的...

机器之心
2018/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink的Table API及SQL Programs

序 本文主要研究一下flink的Table API及SQL Programs 实例 // for batch programs use ExecutionEnvironment instead of StreamExecutionEnvironmentStreamExecutionEnvironment env = Stre......

go4it
19分钟前
0
0
mysqldump应用

备份单个库/表数据或库/表结构 命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 备份文件名 1、导出数据库为dbname的表结构(其中用戶名為root,密码为dbpasswd,生成的...

阿dai
27分钟前
0
0
shell脚本与Python的交互

1、Python针对shell获取传入,输出参数 传入:"$num" 例如: $0表示文件名,$1表示shell获取的第一个参数 输出:通过打印shell结果的方式,输出参数给Python。 例如: echo "{$iplist}",Python调...

一口今心
29分钟前
0
0
Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造

阿里妹导读:千呼万唤始出来!阿里妈妈正式公布重磅开源项目——图深度学习框架Euler。这是国内首个在核心业务大规模应用后开源的图深度学习框架。此次开源,Euler内置了大量的算法供用户直接...

阿里云官方博客
36分钟前
0
0
TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部