def random_access_problem(which=1):
import raputil as ru
if which == 1:
opts = ru.Problem.scenario1()
else:
opts = ru.Problem.scenario2()
p = ru.Problem(**opts)
x1 = p.genX(1)
y1 = p.fwd(x1)
A = p.S
M,N = A.shape
nbatches = int(math.ceil(1000 /x1.shape[1]))
prob = NumpyGenerator(p=p,nbatches=nbatches,A=A,opts=opts,iid=(which==1))
if which==2:
prob.maskX_ = tf.expand_dims( tf.constant( (np.arange(N) % (N//2) < opts['Nu']).astype(np.float32) ) , 1)
_,prob.noise_var = p.add_noise(y1)
unused = p.genYX(nbatches) # for legacy reasons -- want to compare against a previous run
(prob.yval, prob.xval) = p.genYX(nbatches)
(prob.yinit, prob.xinit) = p.genYX(nbatches)
import multiprocessing as mp
prob.nsubprocs = mp.cpu_count()
return prob
评论列表
文章目录