• 第一节,tensorflow基础构架


    1、tensorflow结构

    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  定义线性方程
    #create tensorflow structure
    Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0)) #一维,范围[-1,1]
    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) #学习效率<1
    train=optimizer.minimize(loss)
    #初始化变量,定义的变量必须初始化,
    init=tf.global_variables_initializer()
    with tf.Session() as sess:
        sess.run(init)
        #train
        for step in range(201):
            sess.run(train)
            if step%20==0:
                print(step,sess.run(Weights),sess.run(biases))
    运行结果:
    Weights趋于0.1,biases趋于0.3.
     
    2、Session 必须开启会话才能输出结果
    import tensorflow as tf
    matrix1 = tf.constant([[3, 3]])
    matrix2 = tf.constant([[2], [2]])
    # matrix multiply矩阵相乘
    # np.dot(m1,m2)
    product = tf.matmul(matrix1, matrix2)
    # # method 1
    # sess = tf.Session()  # Session是一个object,首字母要大写
    # # 只有sess.run()之后,tensorflow才会执行一次
    # result = sess.run(product)
    # print(result)
    # # close 不影响,会显得更整洁
    # sess.close()
    # method 2
    # with 可以自己关闭会话
    with tf.Session() as sess:
        result2 = sess.run(product)
        print(result2)
     
    3、Variable变量
    定义变量,变量必须激活
    init=tf.global_variables_initializer()

    4、placeholder传入值

    运行到sess.run()的时候再给输入

    利用feed_dict绑定

    # 给定type,tf大部分只能处理float32数据
    input1 = tf.placeholder(tf.float32)
    input2 = tf.placeholder(tf.float32)
    # Tensorflow 1.0 修改版
    # tf.mul---tf.multiply
    # tf.sub---tf.subtract
    # tf.neg---tf.negative
    output = tf.multiply(input1, input2)
    with tf.Session() as sess:
        # placeholder在sess.run()的时候传入值
        print(sess.run(output, feed_dict={input1: [7.], input2: [2.]}))
    5、激励函数

    简单的神经网络一般可以使用任何激励函数;

    复杂的神经网络不能随意选择,会造成梯度爆炸和梯度消失的问题;

    卷积神经网络中推荐使用relu激励函数;循环神经网络RNN:relu or tanh激励函数

  • 相关阅读:
    friend ---- public and private
    c++中const使用详解
    In c++ access control works on per-class basis not on per-object basis.
    realloc 用法
    enum don't allocate any memory
    (转)C++ STL中的vector的内存分配与释放
    计算机网络面试总结
    Redis安装与测试
    Hbase的安装与测试
    使用ActiveMQ实现简易聊天功能
  • 原文地址:https://www.cnblogs.com/wyx501/p/10435975.html
Copyright © 2020-2023  润新知