美文网首页
tensorflow

tensorflow

作者: 菜田的守望者w | 来源:发表于2019-02-11 19:42 被阅读0次

import tensorflow as tf

import os

os.environ['TF_CPP_LOG_LEVEL']='2'

def demo():

    a=tf.constant(2)

    b=tf.constant(3)

    c=a+b

    print(c)

    # 开启会话

    # 查看默认图两种方法

    # 1.调用方法

    default_g=tf.get_default_graph()

    print(default_g)

    # 2.查看属性

    print(b.graph)

    print(c.graph)

    # 如果不知道a_ph和b_ph的数值可以用placeholder占位

    a_ph=tf.placeholder(tf.float32)

    b_ph=tf.placeholder(tf.float32)

    c_ph=tf.add(a_ph,b_ph)

    with tf.Session() as sess:

        c_value_ph=sess.run(c_ph,feed_dict={a_ph:3.4,b_ph:5.7})

        print(c_value_ph)

        c_value=sess.run(c)

        print(sess.graph)

        print(c_value)

    # 将图写入本地生成event文件

        tf.summary.FileWriter("C:/logfile",graph=sess.graph)

    # 自定义图

    new_g=tf.Graph()

    # 在自己图中定义数据和操作

    with new_g.as_default():  # 借助上下文管理器

        a_new=tf.constant(3)

        b_new=tf.constant(7)

        c_new=a_new+b_new

    with tf.Session(graph=new_g) as new_sess:

        c_new_defult=new_sess.run(c_new)

        print(c_new_defult)

def linear_regression():

    # 准备数据

    with tf.variable_scope("prepare_data"):

        x=tf.random_normal(shape=[100,1],name="Feature")

        y_true=tf.matmul(x,[[0.8]])+0.7

    with tf.variable_scope("create_model"):

    # 构造模型

    # 定义模型参数用变量

        weights=tf.Variable(initial_value=tf.random_normal(shape=[1,1],name="Weight"))

        bias=tf.Variable(initial_value=tf.random_normal(shape=[1,1],name="Bias"))

        y_predict=tf.matmul(x,weights)+bias

    with tf.variable_scope("loss_function"):

    # 构造损失函数

        error=tf.reduce_mean(tf.square(y_predict-y_true))  # 平方再平均

    # 优化损失

    with tf.variable_scope("optimizer"):

        optimizer=tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)

    # 收集变量

    tf.summary.scalar("error",error)

    tf.summary.histogram("bias",bias)

    tf.summary.histogram("weights",weights)

    # 合并变量

    merged=tf.summary.merge_all()

    saver=tf.train.Saver()

    # 显示初始化变量

    init=tf.global_variables_initializer()

    # 开启会话

    with tf.Session() as sess:

        sess.run(init)

        # 创建事件文件

        file_writer=tf.summary.FileWriter("C:/logfile", graph=sess.graph)

        # 查看初始化模型参数的值

        print("训练前的参数为:权重%f,偏置%f,损失%f"% (weights.eval(), bias.eval(), error.eval()))

        # 开始训练

        for i in range(10):

            sess.run(optimizer)

            print("训练第%d的参数为:权重%f,偏置%f,损失%f" % (i+1,weights.eval(), bias.eval(), error.eval()))

            # 运行合并变量操作

            summary=sess.run(merged)

            # 将每次迭代后的变量写入事件文件

            file_writer.add_summary(summary,i+1)

            # 保存模型

            if i % 10 ==0:

                saver.save(sess,path)

            if os.path.exists(""):  # 判断文件是否存在

                saver.restore(sess,path)

    return None

linear_regression()

相关文章

网友评论

      本文标题:tensorflow

      本文链接:https://www.haomeiwen.com/subject/mqcceqtx.html