import tensorflow as tf
import numpy as np
BATCH_SIZE = 8
seed = 23455
#基于seed产生随机数
rng = np.random.RandomState(seed)
#随机数返回32行两列的矩阵 表示32组 体积和重量 作为数据集
X = rng.rand(32,2)
#从X这个32行矩阵中取出一行 如果和小于1给Y赋值1,如果和大于1给Y赋值 0
Y = [[int(x0 + x1 <1)] for (x0,x1) in X]
print("x是\n",X)
print("y是\n",Y)
#定义神经网络的输入,参数和输出 ,定义前向传播过程
x = tf.placeholder(tf.float32,shape = (None,2))
y_ = tf.placeholder(tf.float32,shape = (None,1))
w1 = tf.Variable(tf.random_normal([2,3], stddev=1,seed =1))
w2 = tf.Variable(tf.random_normal([3,1], stddev=1,seed =1))
a = tf.matmul(x,w1)
y = tf.matmul(a,w2)
#定义损失函数及其反向传播方法
loss = tf.reduce_mean(tf.square(y-y_))
train_step = tf.train.AdamOptimizer(0.001).minimize(loss)
#生成会话 训练steps轮
with tf.Session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
#输出目前(未经训练)的参数取值
print("w1:\n",sess.run(w1))
print("w2:\n",sess.run(w2))
print("\n")
#训练模型
STEPS = 3000
for i in range(3000):
start = (i*BATCH_SIZE)%32
end = start + BATCH_SIZE
sess.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]})
if i % 500==0:
total_loss =sess.run(loss,feed_dict={x:X,y_:Y})
print("After %d traing step(s),loss on all data is %g"%(i,total_loss))
print("\n")
print("w1\n",sess.run(w1))
print("w2\n",sess.run(w2))
daxuemooc 3
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2018.2.3 目标:身心健康,财富丰盛 好种子: 1早起健康早餐,种下健康的种子,回向群里姐妹及家人身心健康 ...
- 2018.3.1 目标:身心健康,财富丰盛 好种子: 1早起健康早餐,种下健康的种子 2收拾家,回向女儿和众学子干...
- 你每月从老板手里领工资,老板给的钱多就多干点,否则少干点。老板对你好的时候就多干点,否则也少干点。老板在公司的时候...