foscat 3.0.32__py3-none-any.whl → 3.0.34__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- foscat/FoCUS.py +72 -34
- foscat/GCNN.py +15 -8
- foscat/backend.py +8 -0
- {foscat-3.0.32.dist-info → foscat-3.0.34.dist-info}/METADATA +1 -1
- {foscat-3.0.32.dist-info → foscat-3.0.34.dist-info}/RECORD +7 -7
- {foscat-3.0.32.dist-info → foscat-3.0.34.dist-info}/WHEEL +1 -1
- {foscat-3.0.32.dist-info → foscat-3.0.34.dist-info}/top_level.txt +0 -0
foscat/FoCUS.py
CHANGED
|
@@ -32,7 +32,7 @@ class FoCUS:
|
|
|
32
32
|
mpi_size=1,
|
|
33
33
|
mpi_rank=0):
|
|
34
34
|
|
|
35
|
-
self.__version__ = '3.0.
|
|
35
|
+
self.__version__ = '3.0.34'
|
|
36
36
|
# P00 coeff for normalization for scat_cov
|
|
37
37
|
self.TMPFILE_VERSION=TMPFILE_VERSION
|
|
38
38
|
self.P1_dic = None
|
|
@@ -328,33 +328,44 @@ class FoCUS:
|
|
|
328
328
|
x,y,z=hp.pix2vec(nside,np.arange(12*nside*nside),nest=True)
|
|
329
329
|
|
|
330
330
|
idx=np.argsort((x-1.0)**2+y**2+z**2)[0:kernel]
|
|
331
|
+
x0,y0,z0=hp.pix2vec(nside,idx[0],nest=True)
|
|
332
|
+
t0,p0=hp.pix2ang(nside,idx[0],nest=True)
|
|
333
|
+
|
|
334
|
+
idx=np.argsort((x-x0)**2+(y-y0)**2+(z-z0)**2)[0:kernel]
|
|
331
335
|
im=np.ones([12*nside**2])*-1
|
|
332
336
|
im[idx]=np.arange(len(idx))
|
|
337
|
+
|
|
333
338
|
xc,yc,zc=hp.pix2vec(nside,idx,nest=True)
|
|
339
|
+
|
|
340
|
+
xc-=x0
|
|
341
|
+
yc-=y0
|
|
342
|
+
zc-=z0
|
|
334
343
|
|
|
335
344
|
vec=np.concatenate([np.expand_dims(x,-1),
|
|
336
345
|
np.expand_dims(y,-1),
|
|
337
346
|
np.expand_dims(z,-1)],1)
|
|
338
347
|
|
|
339
|
-
tc,pc=hp.pix2ang(nside,idx,nest=True)
|
|
340
|
-
|
|
341
348
|
indices=np.zeros([12*nside**2*250,2],dtype='int')
|
|
342
349
|
weights=np.zeros([12*nside**2*250])
|
|
343
350
|
nn=0
|
|
344
|
-
for k in range(
|
|
351
|
+
for k in range(12*nside*nside):
|
|
345
352
|
if k%(nside*nside)==nside*nside-1:
|
|
346
353
|
print('Nside=%d KenelSZ=%d %.2f%%'%(nside,kernel,k/(12*nside**2)*100))
|
|
347
|
-
|
|
354
|
+
if nside<4:
|
|
355
|
+
idx2=np.arange(12*nside**2)
|
|
356
|
+
else:
|
|
357
|
+
idx2=hp.query_disc(nside, vec[k], np.pi/nside, inclusive=True,nest=True)
|
|
348
358
|
t2,p2=hp.pix2ang(nside,idx2,nest=True)
|
|
349
359
|
if rotation is None:
|
|
350
|
-
rot=[po[k]/np.pi*180.0,
|
|
360
|
+
rot=[po[k]/np.pi*180.0,(t0-to[k])/np.pi*180.0]
|
|
351
361
|
else:
|
|
352
|
-
rot=[po[k]/np.pi*180.0,
|
|
362
|
+
rot=[po[k]/np.pi*180.0,(t0-to[k])/np.pi*180.0,rotation[k]]
|
|
363
|
+
|
|
353
364
|
r=hp.Rotator(rot=rot)
|
|
354
365
|
t2,p2=r(t2,p2)
|
|
355
|
-
|
|
366
|
+
|
|
356
367
|
ii,ww=hp.get_interp_weights(nside,t2,p2,nest=True)
|
|
357
|
-
|
|
368
|
+
|
|
358
369
|
ii=im[ii]
|
|
359
370
|
|
|
360
371
|
for l in range(4):
|
|
@@ -410,18 +421,18 @@ class FoCUS:
|
|
|
410
421
|
def init_CNN_index(self,nside,transpose=False):
|
|
411
422
|
l_kernel=int(self.KERNELSZ*self.KERNELSZ)
|
|
412
423
|
try:
|
|
413
|
-
indices=np.load('%s/FOSCAT_%s_I%d_%d_%
|
|
414
|
-
weights=np.load('%s/FOSCAT_%s_W%d_%d_%
|
|
415
|
-
xc=np.load('%s/FOSCAT_%s_X%d_%d_%
|
|
416
|
-
yc=np.load('%s/FOSCAT_%s_Y%d_%d_%
|
|
417
|
-
zc=np.load('%s/FOSCAT_%s_Z%d_%d_%
|
|
424
|
+
indices=np.load('%s/FOSCAT_%s_I%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
425
|
+
weights=np.load('%s/FOSCAT_%s_W%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
426
|
+
xc=np.load('%s/FOSCAT_%s_X%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
427
|
+
yc=np.load('%s/FOSCAT_%s_Y%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
428
|
+
zc=np.load('%s/FOSCAT_%s_Z%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
418
429
|
except:
|
|
419
430
|
indices,weights,xc,yc,zc=self.calc_indices_convol(nside,l_kernel)
|
|
420
|
-
np.save('%s/FOSCAT_%s_I%d_%d_%
|
|
421
|
-
np.save('%s/FOSCAT_%s_W%d_%d_%
|
|
422
|
-
np.save('%s/FOSCAT_%s_X%d_%d_%
|
|
423
|
-
np.save('%s/FOSCAT_%s_Y%d_%d_%
|
|
424
|
-
np.save('%s/FOSCAT_%s_Z%d_%d_%
|
|
431
|
+
np.save('%s/FOSCAT_%s_I%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),indices)
|
|
432
|
+
np.save('%s/FOSCAT_%s_W%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),weights)
|
|
433
|
+
np.save('%s/FOSCAT_%s_X%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),xc)
|
|
434
|
+
np.save('%s/FOSCAT_%s_Y%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),yc)
|
|
435
|
+
np.save('%s/FOSCAT_%s_Z%d_%d_%d_CNNV3.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside),zc)
|
|
425
436
|
if not self.silent:
|
|
426
437
|
print('Write %s/FOSCAT_%s_W%d_%d_%d_CNNV2.npy'%(self.TEMPLATE_PATH,TMPFILE_VERSION,l_kernel,self.NORIENT,nside))
|
|
427
438
|
|
|
@@ -433,33 +444,45 @@ class FoCUS:
|
|
|
433
444
|
12*nside*nside])
|
|
434
445
|
|
|
435
446
|
# ---------------------------------------------−---------
|
|
436
|
-
def healpix_layer_coord(self,im):
|
|
437
|
-
nside=int(np.sqrt(im.shape[
|
|
447
|
+
def healpix_layer_coord(self,im,axis=0):
|
|
448
|
+
nside=int(np.sqrt(im.shape[axis]//12))
|
|
438
449
|
l_kernel=self.KERNELSZ*self.KERNELSZ
|
|
439
450
|
if self.ww_CNN[nside] is None:
|
|
440
451
|
self.init_CNN_index(nside)
|
|
441
452
|
return self.X_CNN[nside],self.Y_CNN[nside],self.Z_CNN[nside]
|
|
442
453
|
|
|
443
454
|
# ---------------------------------------------−---------
|
|
444
|
-
def healpix_layer_transpose(self,im,ww,indices=None,weights=None):
|
|
445
|
-
nside=int(np.sqrt(im.shape[
|
|
455
|
+
def healpix_layer_transpose(self,im,ww,indices=None,weights=None,axis=0):
|
|
456
|
+
nside=int(np.sqrt(im.shape[axis]//12))
|
|
446
457
|
l_kernel=self.KERNELSZ*self.KERNELSZ
|
|
447
458
|
|
|
448
|
-
if im.shape[1]!=ww.shape[1]:
|
|
459
|
+
if im.shape[1+axis]!=ww.shape[1]:
|
|
449
460
|
if not self.silent:
|
|
450
461
|
print('Weights channels should be equal to the input image channels')
|
|
451
462
|
return -1
|
|
452
|
-
|
|
463
|
+
if axis==1:
|
|
464
|
+
results=[]
|
|
453
465
|
|
|
454
|
-
|
|
466
|
+
for k in range(im.shape[0]):
|
|
467
|
+
|
|
468
|
+
tmp=self.healpix_layer(im[k],ww,indices=indices,weights=weights,axis=0)
|
|
469
|
+
tmp=self.backend.bk_reshape(self.up_grade(tmp,2*nside),[12*4*nside**2,ww.shape[2]])
|
|
470
|
+
|
|
471
|
+
results.append(tmp)
|
|
472
|
+
|
|
473
|
+
return self.backend.bk_stack(results,axis=0)
|
|
474
|
+
else:
|
|
475
|
+
tmp=self.healpix_layer(im,ww,indices=indices,weights=weights,axis=axis)
|
|
476
|
+
|
|
477
|
+
return self.up_grade(tmp,2*nside)
|
|
455
478
|
|
|
456
479
|
# ---------------------------------------------−---------
|
|
457
480
|
# ---------------------------------------------−---------
|
|
458
|
-
def healpix_layer(self,im,ww,indices=None,weights=None):
|
|
459
|
-
nside=int(np.sqrt(im.shape[
|
|
481
|
+
def healpix_layer(self,im,ww,indices=None,weights=None,axis=0):
|
|
482
|
+
nside=int(np.sqrt(im.shape[axis]//12))
|
|
460
483
|
l_kernel=self.KERNELSZ*self.KERNELSZ
|
|
461
|
-
|
|
462
|
-
if im.shape[1]!=ww.shape[1]:
|
|
484
|
+
|
|
485
|
+
if im.shape[1+axis]!=ww.shape[1]:
|
|
463
486
|
if not self.silent:
|
|
464
487
|
print('Weights channels should be equal to the input image channels')
|
|
465
488
|
return -1
|
|
@@ -475,11 +498,26 @@ class FoCUS:
|
|
|
475
498
|
|
|
476
499
|
mat=self.backend.bk_SparseTensor(indices,weights,[12*nside*nside*l_kernel,12*nside*nside])
|
|
477
500
|
|
|
478
|
-
|
|
501
|
+
if axis==1:
|
|
502
|
+
results=[]
|
|
479
503
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
504
|
+
for k in range(im.shape[0]):
|
|
505
|
+
|
|
506
|
+
tmp=self.backend.bk_sparse_dense_matmul(mat,im[k])
|
|
507
|
+
|
|
508
|
+
density=self.backend.bk_reshape(tmp,[12*nside*nside,l_kernel*im.shape[1+axis]])
|
|
509
|
+
|
|
510
|
+
density=self.backend.bk_matmul(density,self.backend.bk_reshape(ww,[l_kernel*im.shape[1+axis],ww.shape[2]]))
|
|
511
|
+
|
|
512
|
+
results.append(self.backend.bk_reshape(density,[12*nside**2,ww.shape[2]]))
|
|
513
|
+
|
|
514
|
+
return self.backend.bk_stack(results,axis=0)
|
|
515
|
+
else:
|
|
516
|
+
tmp=self.backend.bk_sparse_dense_matmul(mat,im)
|
|
517
|
+
|
|
518
|
+
density=self.backend.bk_reshape(tmp,[12*nside*nside,l_kernel*im.shape[1]])
|
|
519
|
+
|
|
520
|
+
return self.backend.bk_matmul(density,self.backend.bk_reshape(ww,[l_kernel*im.shape[1],ww.shape[2]]))
|
|
483
521
|
# ---------------------------------------------−---------
|
|
484
522
|
|
|
485
523
|
# ---------------------------------------------−---------
|
foscat/GCNN.py
CHANGED
|
@@ -79,15 +79,21 @@ class GCNN:
|
|
|
79
79
|
def get_weights(self):
|
|
80
80
|
return self.x
|
|
81
81
|
|
|
82
|
-
def eval(self,param,indices=None,weights=None):
|
|
82
|
+
def eval(self,param,indices=None,weights=None,axis=0):
|
|
83
83
|
|
|
84
84
|
x=self.x
|
|
85
85
|
|
|
86
86
|
ww=self.scat_operator.backend.bk_reshape(x[0:self.npar*12*self.in_nside**2*self.chanlist[0]], \
|
|
87
87
|
[self.npar,12*self.in_nside**2*self.chanlist[0]])
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
|
|
89
|
+
if axis==0:
|
|
90
|
+
nval=1
|
|
91
|
+
else:
|
|
92
|
+
nval=param.shape[0]
|
|
93
|
+
|
|
94
|
+
im=self.scat_operator.backend.bk_reshape(param,[nval,self.npar])
|
|
95
|
+
im=self.scat_operator.backend.bk_matmul(im,ww)
|
|
96
|
+
im=self.scat_operator.backend.bk_reshape(im,[nval,12*self.in_nside**2,self.chanlist[0]])
|
|
91
97
|
im=self.scat_operator.backend.bk_relu(im)
|
|
92
98
|
|
|
93
99
|
nn=self.npar*12*self.chanlist[0]*self.in_nside**2
|
|
@@ -96,14 +102,15 @@ class GCNN:
|
|
|
96
102
|
[self.KERNELSZ*self.KERNELSZ,self.chanlist[k],self.chanlist[k+1]])
|
|
97
103
|
nn=nn+self.KERNELSZ*self.KERNELSZ*self.chanlist[k]*self.chanlist[k+1]
|
|
98
104
|
if indices is None:
|
|
99
|
-
im=self.scat_operator.healpix_layer_transpose(im,ww)
|
|
105
|
+
im=self.scat_operator.healpix_layer_transpose(im,ww,axis=1)
|
|
100
106
|
else:
|
|
101
|
-
im=self.scat_operator.healpix_layer_transpose(im,ww,indices=indices[k],weights=weights[k])
|
|
107
|
+
im=self.scat_operator.healpix_layer_transpose(im,ww,indices=indices[k],weights=weights[k],axis=1)
|
|
102
108
|
im=self.scat_operator.backend.bk_relu(im)
|
|
103
|
-
|
|
109
|
+
|
|
104
110
|
ww=self.scat_operator.backend.bk_reshape(x[nn:],[self.chanlist[self.nscale],self.n_chan_out])
|
|
105
111
|
im=self.scat_operator.backend.bk_matmul(im,ww)
|
|
106
|
-
|
|
112
|
+
if axis==0:
|
|
113
|
+
im=self.scat_operator.backend.bk_reshape(im,[im.shape[1],im.shape[2]])
|
|
107
114
|
return im
|
|
108
115
|
|
|
109
116
|
|
foscat/backend.py
CHANGED
|
@@ -253,6 +253,14 @@ class foscat_backend:
|
|
|
253
253
|
if self.BACKEND==self.NUMPY:
|
|
254
254
|
return self.scipy.sparse.coo_matrix((w,(indice[:,0],indice[:,1])),shape=dense_shape)
|
|
255
255
|
|
|
256
|
+
def bk_stack(self,list,axis=0):
|
|
257
|
+
if self.BACKEND==self.TENSORFLOW:
|
|
258
|
+
return self.backend.stack(list,axis=axis)
|
|
259
|
+
if self.BACKEND==self.TORCH:
|
|
260
|
+
return self.backend.stack(list,axis=axis)
|
|
261
|
+
if self.BACKEND==self.NUMPY:
|
|
262
|
+
return self.backend.stack(list,axis=axis)
|
|
263
|
+
|
|
256
264
|
def bk_sparse_dense_matmul(self,smat,mat):
|
|
257
265
|
if self.BACKEND==self.TENSORFLOW:
|
|
258
266
|
return self.backend.sparse.sparse_dense_matmul(smat,mat)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
foscat/CNN.py,sha256=M7i9gdPQvFTPxKySrlaKsCnOXK0iwXBKcQ2FqdPK-JM,4408
|
|
2
2
|
foscat/CircSpline.py,sha256=610sgsWeZzRXYh7gYEqUmGQVrXoHSaFGKjH5mCdh4jU,1684
|
|
3
|
-
foscat/FoCUS.py,sha256=
|
|
4
|
-
foscat/GCNN.py,sha256=
|
|
3
|
+
foscat/FoCUS.py,sha256=9Oxf-muKAwa2vyT8l8l_6A8tad52kSXJNvisPalFlkE,72101
|
|
4
|
+
foscat/GCNN.py,sha256=uaJteFo9DUIYnp0yGj7MeW6z3ZQEHFUBGRBuUhy46yY,4241
|
|
5
5
|
foscat/GetGPUinfo.py,sha256=c01MFYCk38niYCTp0vX3WP24zVDHIsex-Cu42hc9Q18,724
|
|
6
6
|
foscat/Softmax.py,sha256=UDc8Kbl0qWfH1bqDDwfLnkxhON7p93ueZ-Qg2oY4Ke4,2874
|
|
7
7
|
foscat/Spline1D.py,sha256=9oeM8SSHjpfUE5z72YxGt1RVt22vJYM1zhHbNBW8phw,1232
|
|
8
8
|
foscat/Synthesis.py,sha256=aqV_3Npcl2RQj-wxQ0hDMCo650lrN6YRaMd0fAoCrQ4,12615
|
|
9
9
|
foscat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
foscat/backend.py,sha256=
|
|
10
|
+
foscat/backend.py,sha256=XDxxMbtoLbxiiPlQZ83rXgTqXUXNw7-qRXtA5h6UpDI,31400
|
|
11
11
|
foscat/backend_tens.py,sha256=zEFZ71j0nMNP9_91tz21ZVBTayr75l-sfONOLkJ8DyI,1432
|
|
12
12
|
foscat/loss_backend_tens.py,sha256=WbGC4vy1pBg_bxUXnlCRiXX9WszN6MaUWUc_lUvZNvQ,1667
|
|
13
13
|
foscat/loss_backend_torch.py,sha256=Fj_W3VwGgeD79eQ4jOxOmhZ548UKDRUb3JjUo2-gSWM,1755
|
|
@@ -19,7 +19,7 @@ foscat/scat_cov1D.py,sha256=1bhzaW-5Pcr1aEPOYIXiwu8KOy38JE0g_Y5PvFzGQs8,60599
|
|
|
19
19
|
foscat/scat_cov2D.py,sha256=8_XvC-lOEVUWP9vT3Wx10G_ATeVeh0SdrSWuBV7Xf5k,536
|
|
20
20
|
foscat/scat_cov_map.py,sha256=ocU2xd41GtJhiU9S3dEv38KfPCvz0tJKY2f8lPxpm5c,2729
|
|
21
21
|
foscat/scat_cov_map2D.py,sha256=t4llIt7DVIyU1b_u-dJSX4lBr2FhDict8RnNnHpRvHM,2754
|
|
22
|
-
foscat-3.0.
|
|
23
|
-
foscat-3.0.
|
|
24
|
-
foscat-3.0.
|
|
25
|
-
foscat-3.0.
|
|
22
|
+
foscat-3.0.34.dist-info/METADATA,sha256=Fq0p3sOVZh9JRuD4SdSayx5W8tTCT7eS_CWPpvnZFsI,1013
|
|
23
|
+
foscat-3.0.34.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
|
24
|
+
foscat-3.0.34.dist-info/top_level.txt,sha256=AGySXBBAlJgb8Tj8af6m_F-aiNg2zNTcybCUPVOKjAg,7
|
|
25
|
+
foscat-3.0.34.dist-info/RECORD,,
|
|
File without changes
|