tensorflow学习

ref: 周莫烦 https://www.youtube.com/watch?v=JKR1Dxinwwc&list=PLXO45tsB95cKI5AIlf5TxxFPzb-0zeVZ8&index=8

 

1.训练y=0.1x+0.3表达式的中的w和b

import tensorflow as tf
import numpy as np
#create data
x_data=np.random.rand(100).astype(np.float32)
y_data=x_data*0.1+0.3

Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases=tf.Variable(tf.zeros([1]))

y=Weights*x_data+biases

loss=tf.reduce_mean(tf.square(y-y_data))
optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)

init=tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train);
        if(step%20==0):
            print(step,sess.run(Weights),sess.run(biases))
View Code

2.placeholder的使用

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.0],input2:[2.0]}))
View Code

 3.简单的神经网络(包含画图)

用于y=x^2-0.5

一些随机数生成函数的区别:链接

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
def add_layer(inputs,in_size,out_size,activation_function=None):
    Weights=tf.Variable(tf.random_normal([in_size,out_size]))
    biases=tf.Variable(tf.zeros([1,out_size])+0.1)
    Wx_plus_b=tf.matmul(inputs,Weights)+biases
    if activation_function==None:
        outputs=Wx_plus_b
    else:
        outputs=activation_function(Wx_plus_b)
    return outputs

x_data=np.linspace(-1,1,300)[:,np.newaxis]
noise=np.random.normal(0,0.05,x_data.shape)
y_data=np.square(x_data)-0.5+noise

xs=tf.placeholder(tf.float32,[None,1])
ys=tf.placeholder(tf.float32,[None,1])


l1=add_layer(xs,1,10,activation_function=tf.nn.relu)
prediction=add_layer(l1,10,1,activation_function=None)


loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1]))

train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init=tf.initialize_all_variables()
sess=tf.Session()
sess.run(init)

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.scatter(x_data,y_data)
plt.ion()
plt.show()

for i in range(1001):
    sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
    if i%50==0:
        #print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))
        try:
            ax.lines.remove(lines[0])
        except Exception:
            pass
        prediction_value=sess.run(prediction,feed_dict={xs:x_data})
        lines=ax.plot(x_data,prediction_value,'r-',lw=5)
        if i==1000:
            plt.ioff()
            plt.show()
        else:
            plt.pause(0.1)
View Code

 4.神经网络训练MNIST

reduce_sum函数:链接

import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('MNIST_data',one_hot=True)

import matplotlib.pyplot as plt
def add_layer(inputs,in_size,out_size,activation_function=None):
        Weights=tf.Variable(tf.random_normal([in_size,out_size]),name='W')
        biases=tf.Variable(tf.zeros([1,out_size])+0.1)
        Wx_plus_b=tf.matmul(inputs,Weights)+biases
        if activation_function==None:
            outputs=Wx_plus_b
        else:
            outputs=activation_function(Wx_plus_b)
        return outputs


def compute_accuracy(v_xs,v_ys):
    global prediction
    y_pre=sess.run(prediction,feed_dict={xs:v_xs})
    correct_prediction=tf.equal(tf.argmax(y_pre,1),tf.argmax(v_ys,1))
    accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    result=sess.run(accuracy,feed_dict={xs:v_xs,ys:v_ys})
    return result

xs=tf.placeholder(tf.float32,[None,784])
ys=tf.placeholder(tf.float32,[None,10])


prediction=add_layer(xs,784,10,activation_function=tf.nn.softmax)

cross_entropy=tf.reduce_mean(-tf.reduce_sum(ys*tf.log(prediction),reduction_indices=[1]))
train_step=tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

sess=tf.Session()
sess.run(tf.initialize_all_variables())

for i in range(1001):
    batch_xs,batch_ys=mnist.train.next_batch(100)
    sess.run(train_step,feed_dict={xs:batch_xs,ys:batch_ys})
    if i%50 ==0:
        print(compute_accuracy(mnist.test.images,mnist.test.labels))
View Code

 5.图片读取的一些方法 链接

import tensorflow as tf
import matplotlib.pyplot as plt

image_contents=tf.read_file('acoustic-guitar-player.jpg')
#image_contents = tf.gfile.FastGFile('acoustic-guitar-player.jpg', 'rb').read()
image = tf.image.decode_jpeg(image_contents)
image = tf.image.resize_image_with_crop_or_pad(image, 227, 227)

with tf.Session() as sess:
    sess.run(image)
    plt.imshow(image.eval())
    plt.show()
View Code

 

posted @ 2017-09-05 10:45  miao_a_miao  阅读(209)  评论(0编辑  收藏  举报