#!/usr/bin/env python2

-- coding: utf-8 --

“”\"
Created on Thu Dec 20 10:20:55 2018

@author: prestonhuang
“”\"

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np

train_X = np.linspace(-1,1,100)
train_Y = 2*train_X + np.random.randn(train_X.shape) 0.3 # y=2x

plt.plot(train_X,train_Y,‘ro’,label = ‘Original data’)
plt.legend()
plt.show()

X = tf.placeholder(‘float’)
Y = tf.placeholder(‘float’)

W = tf.Variable(tf.random_normal([1]), name = ‘Weight’)
b = tf.Variable(tf.zeros([1]), name =‘bias’)

z = tf.multiply(X,W) + b

#反向传播
cost = tf.reduce_mean(tf.square(Y - z))#平均值,平方
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

int = tf.global_variables_initializer()
#定义参数
trainning_epoch = 20
display_step = 2

#启动session
with tf.Session() as sess:
sess.run(int)
plotdata = {‘batchsize’:[],‘loss’:[]}
for epoch in range(trainning_epoch):
for (x,y) in zip(train_X,train_Y):
sess.run(optimizer, feed_dict = {X:x,Y:y})
if (epoch % display_step) == 0:
loss = sess.run(cost,feed_dict = {X:train_X,Y:train_Y})
print (‘Epoch:’,epoch+1,‘cost=’,loss,‘w=’,sess.run(W),‘b=’,sess.run(b))
if not (loss == ‘NA’):
plotdata[‘batchsize’].append(epoch)
plotdata[‘loss’].append(loss)

print(\'Finished!\')                

print(\'cost=\',sess.run(cost,feed_dict={X:train_X,Y:train_Y}),\'W=\',sess.run(W),\"b=\",sess.run(b))
#使用模型
print(\'x=0.2 z=\',sess.run(z,feed_dict={X:0.2}))
收藏 打印