CANN/TensorFlow NPU迭代循环变量创建 create_iteration_per_loop_var【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow功能说明该接口和load_iteration_per_loop_var接口配合使用用来实现sess.run模式下设置小循环次数即每次sess.run()在Device侧执行训练迭代的次数。该接口的主要作用是修改图并通过load_iteration_per_loop_var接口来设置小循环次数。函数原型def create_iteration_per_loop_var(self, train_op)参数说明参数名输入/输出描述train_op输入更新梯度的操作。返回值返回一个算子供用户通过sess.run(op)调用。调用示例from npu_bridge.npu_init import * config tf.ConfigProto(allow_soft_placementTrue) custom_op config.graph_options.rewrite_options.custom_optimizers.add() custom_op.name NpuOptimizer custom_op.parameter_map[enable_data_pre_proc].b True # 若网络中存在GetNext算子需要设置GetNext算子下沉GetNext算子下沉是迭代循环下沉的必要条件 custom_op.parameter_map[iterations_per_loop].i 10 # 此处设置的值和load_iteration_per_loop_var接口设置的iterations_per_loop参数值保持一致用于功能校验 config npu_config_proto(config_protoconfig) # 训练模型 with tf.Session(configconfig) as sess: sess.run(init) # sess.run模式下设置小循环次数为10 iteration util.IterationPerLoop() # 定义IterationPerLoop对象 train_op iteration.create_iteration_per_loop_var(optimizer) # 修改图 tf.train.Supervisor(logdir/home/xxxx,init_opinit) #冻结图 iteration.load_iteration_per_loop_var(sess, 10) #设置小循环次数 for epoch in range(training_epochs): avg_cost 0 total_batch int(mnist.train.num_examples / batch_size) for i in range(total_batch): batch_xs, batch_ys mnist.train.next_batch(batch_size) _, c sess.run([train_op, cost], feed_dict{x: batch_xs, y: batch_ys}) avg_cost c / total_batch【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考