Tensorflow应用实例(一)

来源:互联网 发布:wind软件 编辑:程序博客网 时间:2024/05/04 01:44

引言:tensorflow作为现在最热的深度学习框架,如何利用tensorflow实现你所要实现的机器学习和深度学习算法成为了大家学习的重点,下面给出了利用tensorflow实现有监督学习的一般框架。
一、有监督学习的一般框架:
如下图所示:
这里写图片描述
二、一般步骤
1、对模型参数初始化;
2、读取训练参数(一般将参数的顺序打乱);
3、计算损失(损失刻画的最后一步得到的输出与来自训练集期望输出之间的差距的概括性的指标);损失函数有多种
4、调整模型参数,这一步对应与实际的学习过程。给定损失函数,学习的目的在于通过大量的训练步骤改善个参数的值,从而使损失最小化。
当训练结束后便进入评估阶段,通过评估可以得到模型的的推广能力。
三、有监督模型的框架代码

import tensorflow as tf#初始化变量和模型参数,定义训练闭环中的运算def inference(X):    #计算推断模型在数据X上的输出,并将结果返回def loss(X,Y):    #依据训练数据X及期望Y计算损失def inputs():    #读取或生成训练数据X及其期望输出Ydef train(total_loss):    #依据计算的总损失或 调整模型参数def evaluate(sess,X,Y):    #对训练到的数据进行模型评估#模型定义代码#创建一个Saver对像saver=tf.train.Saver()#在一个会话对象中启动数据流图,搭建流程with tf.Session() as sess:    tf.initialize_all_variables().run()    X,Y=inputs()    total_loss=loss(X,Y)    train_op=train(total_loss)    coord=tf.train.Coordinator()    threads=tf.train.start_queue_runners(sess=sess,coord=coord)    #实际训练的迭代次数    training_steps=1000    for step in range(training_steps):        sess.run([train_op])        if step %1000==0:            saver.save(sess,'my-model',global_step=step)        #处于调试和训练的目的,查看损失函数在训练过程中递减的情况        if step%10==0:            print("loss:",sess.run([total_loss]))    evaluate(sess,X,Y)    coord.request_stop()    coord.join(threads)    #模型评估    saver.save(sess,'my-model',global_step=training_steps)    sess.close()
原创粉丝点击