TensorFlow:一个简单的神经网络
2018-01-17 17:03
302 查看
利用TensorFLow实现第一个简单的神经网络
#encoding:utf-8
import tensorflow as tf
# NumPy生成模拟数据集
from numpy.random import RandomState
# 定义训练数据batch大小
batch_size = 8
# 定义神经网络的参数,
w1 = tf.Variable( tf.random_normal( [2,3], stddev=1, seed=1 ) )
w2 = tf.Variable( tf.random_normal( [3,1], stddev=1, seed=1 ) )
# shape使用None可以方便不同batch的大小
x = tf.placeholder( tf.float32, shape=[None,2], name='x-input' )
y_ = tf.placeholder( tf.float32, shape=[None,1], name='y_input' )
# 定义神经网络传播过程
# 线性激活函数
a = tf.matmul( x, w1 )
y = tf.matmul( a, w2 )
# # 非线性激活函数
# a = tf.nn.relu( tf.matmul( x, w1 ) + biases1 )
# y = tf.nn.relu( tf.matmul( x, w1 ) + biases2 )
# 定义损失函数和反向传播算法
cross_entropy = -tf.reduce_mean( y_*tf.log( tf.clip_by_value( y, 1e-10, 1.0 ) ) )
train_step = tf.train.AdamOptimizer( 0.001 ).minimize( cross_entropy )
# 随机数生成模拟数据集
rdm = RandomState(1)
dataset_size = 128
X = rdm.rand( dataset_size, 2 )
# 定义柜子来给出样本标签
Y = [ [int(x1+x2<1)] for (x1, x2) in X ]
# 创建会话
with tf.Session() as sess:
# 初始化变量
init_op = tf.initialize_all_variables()
sess.run(init_op)
print sess.run(w1)
print sess.run(w2)
STEPS = 5000
for i in range(STEPS):
# 每次取一定数量的样本训练
start = ( i*batch_size ) % dataset_size
end = min( start + batch_size, dataset_size )
# 通过选取的样本训练神经网络并更新参数
sess.run( train_step, feed_dict={ x: X[start:end], y_: Y[start:end] } )
if i % 1000 == 0:
# 每隔一段时间计算交叉熵并输出
total_cross_entropy = sess.run( cross_entropy, feed_dict={ x: X, y_: Y } )
print( "after %d training step(s), cross entropy on all data is %g" %(i, total_cross_entropy) )
print sess.run(w1)
print sess.run(w2)
#encoding:utf-8
import tensorflow as tf
# NumPy生成模拟数据集
from numpy.random import RandomState
# 定义训练数据batch大小
batch_size = 8
# 定义神经网络的参数,
w1 = tf.Variable( tf.random_normal( [2,3], stddev=1, seed=1 ) )
w2 = tf.Variable( tf.random_normal( [3,1], stddev=1, seed=1 ) )
# shape使用None可以方便不同batch的大小
x = tf.placeholder( tf.float32, shape=[None,2], name='x-input' )
y_ = tf.placeholder( tf.float32, shape=[None,1], name='y_input' )
# 定义神经网络传播过程
# 线性激活函数
a = tf.matmul( x, w1 )
y = tf.matmul( a, w2 )
# # 非线性激活函数
# a = tf.nn.relu( tf.matmul( x, w1 ) + biases1 )
# y = tf.nn.relu( tf.matmul( x, w1 ) + biases2 )
# 定义损失函数和反向传播算法
cross_entropy = -tf.reduce_mean( y_*tf.log( tf.clip_by_value( y, 1e-10, 1.0 ) ) )
train_step = tf.train.AdamOptimizer( 0.001 ).minimize( cross_entropy )
# 随机数生成模拟数据集
rdm = RandomState(1)
dataset_size = 128
X = rdm.rand( dataset_size, 2 )
# 定义柜子来给出样本标签
Y = [ [int(x1+x2<1)] for (x1, x2) in X ]
# 创建会话
with tf.Session() as sess:
# 初始化变量
init_op = tf.initialize_all_variables()
sess.run(init_op)
print sess.run(w1)
print sess.run(w2)
STEPS = 5000
for i in range(STEPS):
# 每次取一定数量的样本训练
start = ( i*batch_size ) % dataset_size
end = min( start + batch_size, dataset_size )
# 通过选取的样本训练神经网络并更新参数
sess.run( train_step, feed_dict={ x: X[start:end], y_: Y[start:end] } )
if i % 1000 == 0:
# 每隔一段时间计算交叉熵并输出
total_cross_entropy = sess.run( cross_entropy, feed_dict={ x: X, y_: Y } )
print( "after %d training step(s), cross entropy on all data is %g" %(i, total_cross_entropy) )
print sess.run(w1)
print sess.run(w2)
相关文章推荐
- Tensorflow 构造一个简单的神经网络
- Tensorflow构建一个简单的神经网络
- tensorflow建立一个简单的神经网络
- 用tensorflow搭建一个简单的神经网络
- 利用tensorflow构造一个简单的神经网络
- tensorflow笔记(二)之构造一个简单的神经网络
- tensorflow学习:建立一个最简单的神经网络
- tensorflow建立一个简单的神经网络的方法
- 用tensorflow建造一个简单的神经网络
- 利用tensorflow 一步一步实现一个简单神经网络,线性回归
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
- tensorflow 学习笔记11 最简单的循环神经网络(RNN)
- 基于MNIST数据集使用TensorFlow训练一个包含一个隐含层的全连接神经网络
- TensorFlow入门,基本介绍,基本概念,计算图,pip安装,helloworld示例,实现简单的神经网络
- [置顶] TensorFlow入门之简单实现神经网络的结构
- [action] deep learning 深度学习 tensorflow 实战(2) 实现简单神经网络以及随机梯度下降算法S.G.D
- TensorFlow:实战Google深度学习框架(二)实现简单神经网络
- tensorflow之安装及简单神经网络搭建
- 79、tensorflow计算一个五层神经网络的正则化损失系数、防止网络过拟合、正则化的思想就是在损失函数中加入刻画模型复杂程度的指标
- 小白学Tensorflow之简单神经网络