分享

tensorflow164 11-4

 木俊 2018-07-14
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# add one threshold
threshold=1.0e-2
x1_data=np.random.rand(100)
x2_data=np.random.rand(100)
y_data=x1_data*2+x2_data*3+1.5

weight1=tf.Variable(1.)
weight2=tf.Variable(1.)
bias=tf.Variable(1.)
x1_=tf.placeholder(tf.float32)
x2_=tf.placeholder(tf.float32)
y_=tf.placeholder(tf.float32)
#y_model=weight*x_+bias
#y_model=tf.add(tf.multiply(x_,weight),bias)
y_model=tf.add(tf.add(tf.multiply(x1_,weight1),tf.multiply(x2_,weight2)),bias)
#loss = tf.pow((y_model-y_),2)
loss=tf.reduce_mean(tf.pow((y_model-y_),2))
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)

sess=tf.Session()
init=tf.initialize_all_variables()
sess.run(init)
flag=1
while(flag):
for (x,y) in zip(zip(x1_data,x2_data),y_data):
sess.run(train_op,feed_dict={x1_:x[0],x2_:x[1],y_:y})
print("weight:", weight1.eval(sess),"weight:", weight2.eval(sess),"bias: ",bias.eval(sess))
if sess.run(loss,feed_dict={x1_:x[0],x2_:x[1],y_:y})<=threshold:
flag=0
fig=plt.figure()
ax=Axes3D(fig)
X,Y=np.meshgrid(x1_data,x2_data)
Z=sess.run(weight1)*X+sess.run(weight2)*Y+sess.run(bias)
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
ax.contourf(X,Y,Z,zdir='z',offset=-1,cmap='rainbow')
ax.set_zlim(-3,2)
plt.show()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约