本文整理匯總了Python中caffe.NCCL屬性的典型用法代碼示例。如果您正苦於以下問題:Python caffe.NCCL屬性的具體用法?Python caffe.NCCL怎麽用?Python caffe.NCCL使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類caffe
的用法示例。
在下文中一共展示了caffe.NCCL屬性的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: train
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def train(
solver, # solver proto definition
snapshot, # solver snapshot to restore
gpus, # list of device ids
timing=False, # show timing info for compute and communications
):
# NCCL uses a uid to identify a session
uid = caffe.NCCL.new_uid()
caffe.init_log()
caffe.log('Using devices %s' % str(gpus))
procs = []
for rank in range(len(gpus)):
p = Process(target=solve_step,
args=(solver, snapshot, gpus, timing, uid, rank))
p.daemon = True
p.start()
procs.append(p)
for p in procs:
p.join()
示例2: solve
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def solve(proto, snapshot, gpus, timing, uid, rank):
caffe.set_mode_gpu()
caffe.set_device(gpus[rank])
caffe.set_solver_count(len(gpus))
caffe.set_solver_rank(rank)
caffe.set_multiprocess(True)
solver = caffe.SGDSolver(proto)
if snapshot and len(snapshot) != 0:
solver.restore(snapshot)
nccl = caffe.NCCL(solver, uid)
nccl.bcast()
if timing and rank == 0:
time(solver, nccl)
else:
solver.add_callback(nccl)
if solver.param.layer_wise_reduce:
solver.net.after_backward(nccl)
solver.step(solver.param.max_iter)
示例3: train_net_multi_gpu
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def train_net_multi_gpu(solver_prototxt, roidb, output_dir, pretrained_model,
max_iter, gpus, reload):
"""Train a Fast R-CNN network."""
roidb = filter_roidb(roidb)
uid = caffe.NCCL.new_uid()
caffe.init_log()
caffe.log('Using devices %s' % str(gpus))
procs = []
for rank in range(len(gpus)):
p = Process(target=solve,
args=(
solver_prototxt, roidb, pretrained_model, gpus, uid,
rank,
output_dir, max_iter, reload))
p.daemon = True
p.start()
procs.append(p)
for p in procs:
p.join()
示例4: train
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def train(
solver, # solver proto definition
snapshot, # solver snapshot to restore
gpus, # list of device ids
timing=False, # show timing info for compute and communications
):
# NCCL uses a uid to identify a session
uid = caffe.NCCL.new_uid()
caffe.init_log()
caffe.log('Using devices %s' % str(gpus))
procs = []
for rank in range(len(gpus)):
p = Process(target=solve,
args=(solver, snapshot, gpus, timing, uid, rank))
p.daemon = True
p.start()
procs.append(p)
for p in procs:
p.join()
示例5: solve
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def solve(proto, gpus, uid, rank, max_iter):
caffe.set_mode_gpu()
caffe.set_device(gpus[rank])
caffe.set_solver_count(len(gpus))
caffe.set_solver_rank(rank)
caffe.set_multiprocess(True)
solver = caffe.SGDSolver(proto)
if rank == 0:
# solver.restore(_snapshot)
solver.net.copy_from(_weights)
solver.net.layers[0].get_gpu_id(gpus[rank])
nccl = caffe.NCCL(solver, uid)
nccl.bcast()
solver.add_callback(nccl)
if solver.param.layer_wise_reduce:
solver.net.after_backward(nccl)
for _ in range(max_iter):
solver.step(1)
示例6: train
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def train(
solver, # solver proto definition
snapshot, # solver snapshot to restore
use_cpu, #whether use cpu
gpus, # list of device ids
timing=False, # show timing info for compute and communications
):
caffe.init_log(0,True)
caffe.log('Using devices %s' % str(gpus))
if use_cpu == True:
p = Process(target=cpu_solve,
args=(solver, snapshot, timing))
p.daemon = True
p.start()
p.join()
else:
# NCCL uses a uid to identify a session
uid = caffe.NCCL.new_uid()
procs = []
for rank in range(len(gpus)):
p = Process(target=solve,
args=(solver, snapshot, gpus, timing, uid, rank))
p.daemon = True
p.start()
procs.append(p)
for p in procs:
p.join()
示例7: solve
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def solve(proto, roidb, pretrained_model, gpus, uid, rank, output_dir, max_iter,
reload):
caffe.set_device(gpus[rank])
caffe.set_mode_gpu()
caffe.set_solver_count(len(gpus))
caffe.set_solver_rank(rank)
caffe.set_multiprocess(True)
cfg.GPU_ID = gpus[rank]
solverW = SolverWrapper(solver_prototxt=proto, roidb=roidb,
output_dir=output_dir, gpu_id=rank,
pretrained_model=pretrained_model, reload=reload)
solver = solverW.get_solver()
nccl = caffe.NCCL(solver, uid)
nccl.bcast()
solver.add_callback(nccl)
if solver.param.layer_wise_reduce:
solver.net.after_backward(nccl)
while solver.iter < max_iter:
solver.step(1)
if solver.iter % cfg.TRAIN.SNAPSHOT_ITERS == 0 and rank == 0:
solverW.snapshot()
示例8: solve_step
# 需要導入模塊: import caffe [as 別名]
# 或者: from caffe import NCCL [as 別名]
def solve_step(proto, snapshot, gpus, timing, uid, rank):
caffe.set_mode_gpu()
caffe.set_device(gpus[rank])
caffe.set_solver_count(len(gpus))
caffe.set_solver_rank(rank)
caffe.set_multiprocess(True)
solver = caffe.SGDSolver(proto)
if snapshot and len(snapshot) != 0:
solver.restore(snapshot)
nccl = caffe.NCCL(solver, uid)
nccl.bcast()
if timing and rank == 0:
time(solver, nccl)
else:
solver.add_callback(nccl)
if solver.param.layer_wise_reduce:
solver.net.after_backward(nccl)
niter = solver.param.max_iter
display = solver.param.display
test_iter = 950
test_interval = 200
# 初始化
train_loss = zeros(int(ceil(niter // display)))
test_loss = zeros(int(ceil(niter // test_interval)))
test_acc = zeros(int(ceil(niter // test_interval)))
# 輔助變量
_train_loss = 0;
_test_loss = 0;
_accuracy = 0;
_max_accuracy = 0;
_max_accuracy_iter = 0;
# 進行解算
for it in range(niter):
solver.step(1)
#def train_this(
# solver, # solver proto definition
# snapshot, # solver snapshot to restore
# gpus, # list of device ids
# timing=False, # show timing info for compute and communications
#):
# train(solver, snapshot, gpus, timing)
#solver = caffe.SGDSolver('/home/zhujiagang/temporal-segment-networks/models/ucf101/gating_three_solver.prototxt')
#solver.restore('/home/zhujiagang/temporal-segment-networks/models/ucf101_split_1_gating_three_iter_200.solverstate')