TensorFlow 学习(1)

TensorFlow

处理结构 数据的流动

  • 在python库中有默认的图

    #定义一个会话启动默认图
    sess=tf.Session()
    #调用sess的run方法来执行助阵乘法op
    #run(product)方法来调用3个op 
    result=sess.run(product)    
    print(result)
    sess.close()
    
    #这样定义不用执行sess.close()操作
    with tf.Session() as sess:
       #调用sess的run方法来执行助阵乘法op
       #run(product)方法来调用3个op 
       result=sess.run(product)
       print(result)

tensorflow Fetch and feed

  • fetch在会话里面同时执行多个op,然后得到运行的结果

    #Fetch同时运行多个op
    input1=tf.constant(3.0)
    input2=tf.constant(3.0)
    input3=tf.constant(3.0)
    
    add=tf.add(input1,input2)
    mul=tf.multiply(input3,add)
    
    with tf.Session() as sess:
        result=sess.run([add,mul])
        print(result)
    
  • Feed运行的时候在传入值

    #创建占位符
    input1=tf.placeholder(tf.float32)
    input2=tf.placeholder(tf.float32)
    output=tf.multiply(input1,input2)
    
    with tf.Session() as sess:
        #Feed的数据以字典的形式传入
        print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))
    

tensorflow 一个简单的示例

    #使用numpy生成100个随机样本点
    x_data=np.random.rand(100)
    y_data=x_data*0.1+0.2

    #构造一个线性模型,优化k、b使得线性模型接近于样本点的分布
    b=tf.Variable(0.)
    k=tf.Variable(0.)
    y=k*x_data+b

    #二次代价函数
    #reduce_mean用于求平均值
    #误差平方的平均值
    loss=tf.reduce_mean(tf.square(y_data-y))

    #定义一个梯度下降法来进行训练的优化器,0.2表示学习率
    optimizer=tf.train.GradientDescentOptimizer(0.2)

    #最小化代价函数
    #这里主要是求出使得loss最小的k与b,使得预测值接近于真实值
    train=optimizer.minimize(loss)

    #初始化变量
    init=tf.global_variables_initializer()

    with tf.Session() as sess:
        sess.run(init)
        for step in range(300):
            sess.run(train)
        if step%20==0:
            print(step,sess.run([k,b]))

猜你喜欢

转载自blog.csdn.net/yiyiholic/article/details/80060137