Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tensorflow as tf
- import numpy as np
- import math
- np.random.seed(10)
- #program to take 3 features, multiply them together to produce a 4th row
- numRows = 4
- numCols = 200
- def randomTrainingData():
- lower = -10
- upper = 10
- mat = np.random.rand(numRows,numCols) * (upper - lower) + lower
- for col in range(numCols):
- prod = 1
- for f in mat[:-1,col]:
- prod *= f
- mat[-1,col] = prod
- return mat
- def nn(input):
- pass
- def main():
- trainingData = randomTrainingData()
- X = trainingData[:-1,:]
- Y = trainingData[-1,:].reshape(1,numCols)
- inputPlaceholder = tf.placeholder(tf.float32,
- shape=(numRows-1, numCols))
- hiddenUnits = 100
- ################################################
- weights1 = tf.Variable(
- tf.random_uniform([hiddenUnits, numRows-1],-.1, .1),
- name = 'weights1')
- biases1 = tf.Variable(tf.zeros([hiddenUnits,1]),
- name = 'biases1')
- hidden = tf.nn.sigmoid(tf.matmul(weights1,inputPlaceholder) + biases1)
- numOutputs = 1
- weights2 = tf.Variable(
- tf.random_uniform([numOutputs, hiddenUnits],-.1,.1),
- name = 'weights2')
- biases2 = tf.Variable(tf.zeros([numOutputs]), name='biases2')
- outputs = tf.matmul(weights2, hidden) + biases2
- ########################################################
- targetPlaceholder = tf.placeholder(tf.float32, shape=(1,numCols))
- learningRate = 1e-5
- optimizer = tf.train.GradientDescentOptimizer(learningRate)
- # loss = tf.reduce_mean(tf.square(outputs-targetPlaceholder))
- loss = tf.square(outputs-targetPlaceholder)
- tr = optimizer.minimize(loss)
- ###############################################
- init = tf.initialize_all_variables()
- with tf.Session() as sess:
- dd={inputPlaceholder:X, targetPlaceholder:Y}
- dd2={inputPlaceholder:X}
- sess.run(init,feed_dict = dd)
- for i in range(100000):
- sess.run(tr, feed_dict=dd)
- if (i) % 5000 == 0:
- print "iteration:",i
- ll = sess.run(loss, feed_dict = dd)
- print np.mean(ll[0])
- oo = sess.run(outputs,feed_dict=dd2)
- print oo[0,0],Y[0,0]
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement