mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-01 15:52:39 +02:00
git pushMerge branch 'devel' of github.com:SheffieldML/GPy into devel
This commit is contained in:
commit
bcc1e7c8d4
1 changed files with 19 additions and 0 deletions
|
|
@ -39,3 +39,22 @@ def divide_data(datanum, rank, size):
|
|||
size = datanum/size
|
||||
offset = size*rank+residue
|
||||
return offset, offset+size, datanum_list
|
||||
|
||||
def optimize_parallel(model, optimizer=None, messages=True, max_iters=1000, outpath='.', interval=100, name=None):
|
||||
from math import ceil
|
||||
from datetime import datetime
|
||||
import os
|
||||
if name is None: name = model.name
|
||||
stop = 0
|
||||
for iter in range(int(ceil(float(max_iters)/interval))):
|
||||
model.optimize(optimizer=optimizer, messages= True if messages and model.mpi_comm.rank==model.mpi_root else False, max_iters=interval)
|
||||
if model.mpi_comm.rank==model.mpi_root:
|
||||
timenow = datetime.now()
|
||||
timestr = timenow.strftime('%Y:%m:%d_%H:%M:%S')
|
||||
model.save(os.path.join(outpath, name+'_'+timestr+'.h5'))
|
||||
opt = model.optimization_runs[-1]
|
||||
if opt.funct_eval<opt.max_f_eval:
|
||||
stop = 1
|
||||
stop = model.mpi_comm.bcast(stop, root=model.mpi_root)
|
||||
if stop:
|
||||
break
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue