莫烦的代码第4行是tf.mul但是目前版本没有这个函数了,改成了tf.multiply(表示两个数相乘)
feed_dict这个很好的解决了先构建模型再去输入值得问题
import tensorflow as tf
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)
with tf.Session() as sess:
print(sess.run(output,feed_dict={input1:[7.],input2:[2]}))
没调通
import tensorflow as tf import numpy as np def add_layer(intput,insize,outsize,activative): Weight=tf.Variable(tf.random_normal([insize,outsize])) Biase=tf.Variable(tf.zeros([1,outsize])+0.1)#设置baise的值全为0.1 Wx_plus_b=tf.matmul(input,Weight)+Biase if activative is None: outputs=Wx_plus_b else: outputs=activative(Wx_plus_b) return outputs x_data=np.linspace(-1,1,300)[:,np.newaxis]#np.linspace创建等差数列,间隔是300[:,np.newaxis]的作用是将此数列变成称300*1的列向量 #加上噪声 xs=tf.placeholder(tf.float32,[None,1]) ys=tf.placeholder(tf.float32,[None,1]) noise=np.random.normal(0,0.05,x_data.shape)#均值是0,方差是0.05,格式与x_data一样 y_data=np.square(x_data)-0.5 print (x_data) l1=add_layer(xs,1,10,activative=tf.nn.relu)#构建网络 predition=add_layer(l1,10,1,activative=tf.nn.sigmoid) loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-predition),reduction_indices=[1]))#reduction_indices是将其压缩成一维的 train_step=tf.train.GradientDescentOptimizer(0.05).minimize(loss) init=tf.global_variables_initializer() with tf.Session as sess: sess.run(init) for i in range(1000): sess.run(train_step,feed_dict={xs:x_data,ys:y_data}) if(i%20==0): print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))