tensorflow

Posted yangyang12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow相关的知识,希望对你有一定的参考价值。

一、单机编程框架

单机程序是指启动和运行都在一台机器的一个进程中完成,因为没有网络开销,非常适合参数不多、计算量小的模型。

步骤,创建单机数据流图,创建并运行单机会话。

saver = tf.train.Saver()
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()

for i in range(1000):
    batch_xs,batch_ys = mnist.train.next_batch(100)
    sess.run(train_step,feed_dict={x:batch_xs,y_=batch_ys})
    if i%100 = 0:
        saver.save(sess,mnist.ckpt)
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
sess.run(accuracy,feed_dict={x:mnist.test.images,y_:mnist.test.labels})

如果想指定机器上的设备如cpu,gpu

可以使用

with tf.device(‘/cpu:0‘):

  ……

二、分布式程序编程框架

PS-worker是一种经典的分布式架构,它在大规模分布式机器学习和深度学习中有广泛的应用,tensorFlow提供了对PS-worker的支持。

步骤

(1).pull,各worker根据数据流图的拓扑结构,从PS拉取最新的模型参数

(2).feed,各worker按照一定的规则填充不同批次的批数据

(3).compute,各worker使用相同的模型参数和不同的批数据计算梯度,得出不同的梯度值

(4).push,各worker将上一步计算得到的梯度值推送到PS

(5).update,PS汇总数据,求出梯度平均值后更新模型参数

 

分布式程序运行步骤 创建集群,创建分布式数据流图,创建分布式会话

集群创建, tf.train.Server(host,job_name,task_index)

将操作放置在目标设备上

with tf.device(/job:PS/task:0):
    weights_1 = tf.Variable()
with tf.device(/job:PS/task:1):
    weights_2 = tf.Variable()
with tf.device(/job:worker/task:1):
    tf.nn.relu()

3.训练机制

同步训练机制

每个worker独立训练,直到所有worker计算出梯度值后进行模型参数的汇总计算,并更新当前训练步的模型参数,计算较快的worker需要阻塞等待计算较慢的worker

y = tf.nn.softmax(tf.nn.xw_plus_b(hid,sm_w,sm_b))
cross_entropy = -tf.reduce_sum(FLAGS.learning_rate)
if FLAGS.sync_replicas:
    opt = tf.train.SyncReplicasOptimizer(opt,replicas_to_aggregate=10,total_num_replicas=100,name=mnist_sync)
opt.minimize(cross_entropy,global_step=1)

 

异步训练机制

每个worker独立训练,计算出梯度值后立即进行模型参数计算,每个worker无阻塞等待其他所有worker的梯度计算完成。

 

以上是关于tensorflow的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow中卷积层输出特征尺寸计算和padding参数解析

tensorflow新手必看,tensorflow入门教程,tensorflow示例代码

微信小程序代码片段

tensorflow2.0用1.0的代码

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js