TensorFlow学习笔记【一】Helloworld,简单计算,线性回归

来源:互联网 发布:五毛钱特效软件 编辑:程序博客网 时间:2024/05/29 15:02



参考大佬的博客  :  地址


HelloWorld

首先自然是第一个HelloWord程序

import tensorflow as tfhello=tf.constant('HelloWorld!') sess=tf.Session()print sess.run(hello)


不支持中文貌似,所以只能这么办了,233

import tensorflow as tf  #把tensorflow螚进来取名儿为tf
hello=tf.constant('HelloWorld!')   #新建一个常量
sess=tf.Session()  #新建一个Session,先不管它是啥
print sess.run(hello)  #跑一跑~


结果如下:


【图好大……之后不放了】


简单计算/函数传值

定义a,b为一个常数值,sess.run()里面就可以进行一些运算
另外还可以定义一个函数把参数传递进去利用feed_dict( X,Y,..)
同时也要定义变量的类型,利用placeholder

import tensorflow as tfa=tf.constant(200)b=tf.constant(33)c=tf.placeholder(tf.int16)d=tf.placeholder(tf.int16)jiafa=tf.add(c,d)with tf.Session() as sess:    print ("a+b=%d" % sess.run(a+b))    print ("a+b=%d" % sess.run(jiafa,feed_dict={c:200,d:33}))

输出:

a+b=233
a+b=233


线性回归问题

import tensorflow as tfimport numpyimport matplotlib.pyplot as pltrng = numpy.random# Parameterslearning_rate = 0.01training_epochs = 2000display_step = 50# Training Datatrain_X = numpy.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,7.042,10.791,5.313,7.997,5.654,9.27,3.1])train_Y = numpy.asarray([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,2.827,3.465,1.65,2.904,2.42,2.94,1.3])n_samples = train_X.shape[0]# tf Graph InputX = tf.placeholder("float")Y = tf.placeholder("float")# Create Model# Set model weightsW = tf.Variable(rng.randn(), name="weight")b = tf.Variable(rng.randn(), name="bias")# Construct a linear modelactivation = tf.add(tf.multiply(X, W), b)# Minimize the squared errorscost = tf.reduce_sum(tf.pow(activation-Y, 2))/(2*n_samples) #L2 lossoptimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Gradient descent# Initializing the variablesinit = tf.initialize_all_variables()# Launch the graphwith tf.Session() as sess:    sess.run(init)    # Fit all training data    for epoch in range(training_epochs):        for (x, y) in zip(train_X, train_Y):            sess.run(optimizer, feed_dict={X: x, Y: y})        #Display logs per epoch step        if epoch % display_step == 0:            print "Epoch:", '%04d' % (epoch+1), "cost=", \                "{:.9f}".format(sess.run(cost, feed_dict={X: train_X, Y:train_Y})), \                "W=", sess.run(W), "b=", sess.run(b)    print "Optimization Finished!"    print "cost=", sess.run(cost, feed_dict={X: train_X, Y: train_Y}), \          "W=", sess.run(W), "b=", sess.run(b)    #Graphic display    plt.plot(train_X, train_Y, 'ro', label='Original data')    plt.plot(train_X, sess.run(W) * train_X + sess.run(b), label='Fitted line')    plt.legend()    plt.show()