tensorflow基本使用方法:
占位符:定义占位变量,占位变量在定义计算图时不会被指定,在执行计算图时被赋值,一般用于传入网络的数据
tf.placeholder(tf.float32, shape = [None, ], name = )
tensorflow的基本原理:
with tf.name_scope():对使用Variable创建的变量作用
with tf.variable_scope(): 对Variable创建的变量和get_variable创建的变量均有作用
创建变量:
tf.Variable()
tf.get_variable()
定义运算函数:
例如:tf.sigmoid(tf.matmul(x, y) + z)
定义目标函数:
需要再添加一个占位符,即 tf.placeholder(tf.float32, shape = [None, ], name = )
例如:l2正则下,loss = tf.nn,l2_loss(m-n)
定义优化器:
例如:opt = tf.train.GradientDescentOptimizer()
train_op = opt.minimizer(loss)
定义计算资源:
with tf.device(")
完成计算:
创建变量Session,Session将保存计算图中的变量信息用于完成计算,还需要对变量进行初始化
with tf.Session() as sess:
sess.run(tf.gloable_variable_initializer())
for iter in range(200)
loss_val, _ = sess.run([loss, train_op], feed_dict = {x: data_x, y:data_y})
if iter % 10 == 0:
print ('{}:loss={}', format(iter, loss_val))
基于MPI的数据并行模型
MPI:Message Passing Interface,解决多进程通信问题
Scatter:将一个进程的数据切片分成N份,每一个进程收到一份数据并将其分发给其他进程
Gather:将多个进程数据聚集到单一进程中
MPI_Bcast:广播,将一个进程的数据发送给所有进程