In [7]:
import tensorflow as tf
import numpy as np
x=tf.placeholder(tf.float32,shape=[None,1])
y=tf.placeholder(tf.float32,shape=[None,1])
weights=tf.Variable(tf.random_normal([1,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],[1]])
op=np.array([[1],[0]])
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 NOT GATE")
result=sess.run(z,feed_dict={x:inp})
print (result)
In [8]:
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 [ ]:
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],[0],[0],[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 AND GATE")
result=sess.run(z,feed_dict={x:inp})
print (result)
In [26]:
import tensorflow as tf
x_ = tf.placeholder(tf.float32, shape=[4,2], name="x-input")
y_ = tf.placeholder(tf.float32, shape=[4,1], name="y-input")
w1 = tf.Variable(tf.random_uniform([2,2], -1, 1), name="weight1")
w2 = tf.Variable(tf.random_uniform([2,1], -1, 1), name="weight2")
Bias1 = tf.Variable(tf.zeros([2]), name="Bias1")
Bias2 = tf.Variable(tf.zeros([1]), name="Bias2")
A2 = tf.sigmoid(tf.matmul(x_, w1) + Bias1)
z = tf.sigmoid(tf.matmul(A2, w2) + Bias2)
cost = tf.reduce_mean(( (y_ * tf.log(z)) + ((1 - y_) * tf.log(1.0 - z)) ) * -1)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
XOR_X = [[0,0],[0,1],[1,0],[1,1]]
XOR_Y = [[0],[1],[1],[0]]
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(80000):
sess.run(train_step, feed_dict={x_: XOR_X, y_: XOR_Y})
if i % 4000 == 0:
print('Iteration ', i)
result=sess.run(z, feed_dict={x_: XOR_X, y_: XOR_Y})
sess.run(w1)
sess.run(Bias1)
sess.run(w2)
sess.run(Bias2)
print(result)
In [28]:
import tensorflow as tf
x_ = tf.placeholder(tf.float32, shape=[4,2], name="x-input")
y_ = tf.placeholder(tf.float32, shape=[4,1], name="y-input")
w1 = tf.Variable(tf.random_uniform([2,2], -1, 1), name="weight1")
w2 = tf.Variable(tf.random_uniform([2,1], -1, 1), name="weight2")
Bias1 = tf.Variable(tf.zeros([2]), name="Bias1")
Bias2 = tf.Variable(tf.zeros([1]), name="Bias2")
A2 = tf.sigmoid(tf.matmul(x_, w1) + Bias1)
z = tf.sigmoid(tf.matmul(A2, w2) + Bias2)
cost = tf.reduce_mean(( (y_ * tf.log(z)) + ((1 - y_) * tf.log(1.0 - z)) ) * -1)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)
XOR_X = [[0,0],[0,1],[1,0],[1,1]]
XOR_Y = [[1],[0],[0],[1]]
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for i in range(80000):
sess.run(train_step, feed_dict={x_: XOR_X, y_: XOR_Y})
if i % 4000 == 0:
print('Iteration ', i)
result=sess.run(z, feed_dict={x_: XOR_X, y_: XOR_Y})
sess.run(w1)
sess.run(Bias1)
sess.run(w2)
sess.run(Bias2)
print(result)
In [ ]: