zoukankan      html  css  js  c++  java
  • tensorflow 入门

    1 My First Demo

    先运行下我们的第一个demo:

    import tensorflow as tf
    import numpy as np
    
    #creat data
    x_data = np.random.rand(100).astype(np.float32)
    y_data = x_data*0.1+0.3
    
    #creat tensorflow structure start #
    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))   #cost function
    optimizer = tf.train.GradientDescentOptimizer(0.5)  #with gradient decent method & 0.5 is the learning rate
    train = optimizer.minimize(loss)  #minimize the cost funtion
    
    init = tf.global_variables_initializer()  ##???????????
    #creat tensorflow structure end #
    
    sess = tf.Session()
    sess.run(init)  #Very Important ---activate the netrul network
    
    for step in range(201):
        sess.run(train)
        if step % 20 == 0:
            print (step,sess.run(Weights),sess.run(biases))

    2 session

    tensorflow中的所有定义和函数都需要通过session.run之后才能真正运行

    ###
    session tutorial
    ###
    import tensorflow as tf
    
    matrix1 = tf.constant([[3,3]])
    
    matrix2 = tf.constant([[2],[2]])
    
    product = tf.matmul(matrix1,matrix2)  #matrix multiply np.dot(m1,m2)
    
    #method 1
    sess = tf.Session()
    result = sess.run(product)
    print (result)
    sess.close()
    
    #method 2 with method will close the session automatically
    with tf.Session() as sess:
        result2 = sess.run(product)
        print (result2)

    3 Variable

    定义变量需要用tf.Variable声明,并且变量需要global_variables_initializer最终完成定义,而最终变量生成需要借助session,run过之后才是真正的变量

    global_variables_initializer什么时候需要用?

    # variable tutotial
    
    
    
    import tensorflow as tf
    
    state = tf.Variable(0,name = 'counter')
    #print (state.name)
    one = tf.constant(1)
    
    new_value = tf.add(state,one)  ##add
    update = tf.assign(state,new_value)  ##assignment
    
    init = tf.global_variables_initializer() ##must have if define variable
    
    with tf.Session() as sess:
        sess.run(init)
        for _ in range(3):
            sess.run(update)
            print (sess.run(state))

    placehoder

    在执行时候才赋值

    #placehoder
    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.],input2:[2.]}))
    

    定义神经层

    这里写图片描述

    #placehoder
    import  tensorflow as tf
    import numpy as np
    
    def add_layer (inputs,in_size,out_size,activation_function=None):#activation_function没有激活函数就相当于线性函数
        Weithts = 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,Weithts)+biases
        if activation_function is None :
            outputs = Wx_plus_b
        else:
            outputs = activation_function(Wx_plus_b)
    
        return  outputs
    
    def neural_network():
        #生成数据
        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])  # None用来限制用例个数
        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.global_variables_initializer()
        sess = tf.Session()
        sess.run(init)
    
        for i in range(1000):
            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}))
    
    
    # x_data = np.linspace(-1, 1, 300)[:, np.newaxis]
    # init = tf.global_variables_initializer()
    # sess = tf.Session()
    # try:
    #     print(sess.run(tf.convert_to_tensor(x_data)))
    #
    # except Exception as e:
    #     print (e)
    
    if  __name__  == '__main__':
      neural_network()
    
    
    
  • 相关阅读:
    BZOJ1588:[HNOI2002]营业额统计——题解
    POJ2079:Triangle——题解
    POJ3384:Feng Shui——题解
    POJ3525:Most Distant Point from the Sea——题解
    POJ1279:Art Gallery——题解
    重大改革!Python,最接近人工智能的语言~将被加入高考科目!
    滴滴招聘-各类测试人才
    DJI大疆创新招聘-自动化测试工程师
    自动化测试ROI实践
    自动化测试ROI实践
  • 原文地址:https://www.cnblogs.com/zswbky/p/8454035.html
Copyright © 2011-2022 走看看