In [2]:
import tensorflow as tf
import numpy as np
x=tf.placeholder(tf.float32,shape=[None,2])
y=tf.placeholder(tf.float32,shape=[None,1])
weights=tf.Variable(tf.random_normal([2,1]),dtype=tf.float32)
bias=tf.Variable(tf.random_normal([1]),dtype=tf.float32)
multiply1=tf.add(tf.matmul(x,weights),bias)
z=tf.nn.sigmoid(multiply1)
cost=tf.reduce_mean((y*tf.log(z)+(1-y)*tf.log(1-z))*-1)
optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
inp=np.array([[0,0],[0,1],[1,0],[1,1]])
op=np.array([[0],[1],[1],[1]])
with tf.Session() as sess:
tf.global_variables_initializer().run()
for i in range(12001):
res,_=sess.run([cost,optimizer],feed_dict={x:inp,y:op})
if i%1000==0:
print ("iteration= ",i,"cost= ",res)
print ("Validating output for OR GATE")
result=sess.run(z,feed_dict={x:inp})
print (result)
In [ ]: