classy-szfast 0.0.14__py3-none-any.whl → 0.0.16__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.
@@ -87,26 +87,82 @@ class Restore_NN(tf.keras.Model):
87
87
  print(multiline_str)
88
88
 
89
89
 
90
- # restore attributes
91
- def restore(self,
92
- filename
93
- ):
90
+
91
+ # from https://github.com/HTJense/cosmopower/blob/packaging-paper/cosmopower/cosmopower_NN.py
92
+ def restore(self, filename: str, allow_pickle: bool = False) -> None:
94
93
  r"""
95
- Load pre-trained model
94
+ Load pre-trained model.
95
+ The default file format is compressed numpy files (.npz). The
96
+ Module will attempt to use this as a file extension and restore
97
+ from there (i.e. look for `filename.npz`). If this file does
98
+ not exist, and `allow_pickle` is set to True, then the file
99
+ `filename.pkl` will be attempted to be read by `restore_pickle`.
100
+
101
+ The function will trim the file extension from `filename`, so
102
+ `restore("filename")` and `restore("filename.npz")` are identical.
96
103
 
97
104
  Parameters:
98
- filename (str):
99
- filename tag (without suffix) where model was saved
105
+ :param filename: filename (without suffix) where model was saved.
106
+ :param allow_pickle: whether or not to permit passing this filename
107
+ to the `restore_pickle` function.
100
108
  """
101
- # load attributes
102
- with open(filename + ".pkl", 'rb') as f:
103
- self.W_, self.b_, self.alphas_, self.betas_, \
104
- self.parameters_mean_, self.parameters_std_, \
105
- self.features_mean_, self.features_std_, \
106
- self.n_parameters, self.parameters, \
107
- self.n_modes, self.modes, \
108
- self.n_hidden, self.n_layers, self.architecture = pickle.load(f)
109
-
109
+ # Check if npz file exists.
110
+ filename_npz = filename + ".npz"
111
+ if not os.path.exists(filename_npz):
112
+ # Can we load this file as a pickle file?
113
+ filename_pkl = filename + ".pkl"
114
+ if allow_pickle and os.path.exists(filename_pkl):
115
+ self.restore_pickle(filename_pkl)
116
+ return
117
+
118
+ raise IOError(f"Failed to restore network from {filename}: "
119
+ + (" is a pickle file, try setting 'allow_pickle = \
120
+ True'" if os.path.exists(filename_pkl) else
121
+ " does not exist."))
122
+
123
+ with open(filename_npz, "rb") as fp:
124
+ fpz = np.load(fp, allow_pickle=True)["arr_0"].flatten()[0]
125
+
126
+ # print('filename_npz:', filename_npz)
127
+ # print("Keys in the .npz file:", list(fpz.keys()))
128
+
129
+ self.architecture = fpz["architecture"]
130
+ self.n_layers = fpz["n_layers"]
131
+ self.n_hidden = fpz["n_hidden"]
132
+ self.n_parameters = fpz["n_parameters"]
133
+ self.n_modes = fpz["n_modes"]
134
+
135
+ self.parameters = list(fpz["parameters"])
136
+ self.modes = fpz["modes"]
137
+
138
+ # self.parameters_mean_ = fpz["parameters_mean"]
139
+ # self.parameters_std_ = fpz["parameters_std"]
140
+ # self.features_mean_ = fpz["features_mean"]
141
+ # self.features_std_ = fpz["features_std"]
142
+
143
+ # Attempt to load 'parameters_mean' or fall back to 'param_train_mean'
144
+ self.parameters_mean_ = fpz.get("parameters_mean", fpz.get("param_train_mean"))
145
+ self.parameters_std_ = fpz.get("parameters_std", fpz.get("param_train_std"))
146
+ self.features_mean_ = fpz.get("features_mean", fpz.get("feature_train_mean"))
147
+ self.features_std_ = fpz.get("features_std", fpz.get("feature_train_std"))
148
+
149
+
150
+ # Fallback to 'weights_' if individual 'W_i' are not found
151
+ if "weights_" in fpz:
152
+ # Assign the list of weight arrays from 'weights_' directly
153
+ self.W_ = fpz["weights_"]
154
+ else:
155
+ # Use individual weight arrays if available
156
+ self.W_ = [fpz[f"W_{i}"] for i in range(self.n_layers)]
157
+
158
+ # Fallback to 'biases_' if individual 'b_i' are not found
159
+ if "biases_" in fpz:
160
+ self.b_ = fpz["biases_"]
161
+ else:
162
+ self.b_ = [fpz[f"b_{i}"] for i in range(self.n_layers)]
163
+
164
+ self.alphas_ = fpz[f"alphas_"]
165
+ self.betas_ = fpz[f"betas_"]
110
166
 
111
167
 
112
168
  # auxiliary function to sort input parameters
@@ -274,29 +330,110 @@ class Restore_PCAplusNN(tf.keras.Model):
274
330
 
275
331
 
276
332
 
277
- # restore attributes
278
- def restore(self,
279
- filename,
280
- ):
333
+ # from https://github.com/HTJense/cosmopower/blob/packaging-paper/cosmopower/cosmopower_PCAplusNN.py
334
+ def restore(self, filename: str, allow_pickle: bool = False) -> None:
281
335
  r"""
282
- Load pre-trained model
336
+ Load pre-trained model.
337
+ The default file format is compressed numpy files (.npz). The
338
+ Module will attempt to use this as a file extension and restore
339
+ from there (i.e. look for `filename.npz`). If this file does
340
+ not exist, and `allow_pickle` is set to True, then the file
341
+ `filename.pkl` will be attempted to be read by `restore_pickle`.
342
+
343
+ The function will trim the file extension from `filename`, so
344
+ `restore("filename")` and `restore("filename.npz")` are identical.
283
345
 
284
346
  Parameters:
285
- filename (str):
286
- filename tag (without suffix) where model was saved
347
+ :param filename: filename (without suffix) where model was saved.
348
+ :param allow_pickle: whether or not to permit passing this filename to
349
+ the `restore_pickle` function.
287
350
  """
288
- # load attributes
289
- f = open(filename + ".pkl", 'rb')
290
- self.W_, self.b_, self.alphas_, self.betas_, \
291
- self.parameters_mean_, self.parameters_std_, \
292
- self.pca_mean_, self.pca_std_, \
293
- self.features_mean_, self.features_std_, \
294
- self.parameters, self.n_parameters, \
295
- self.modes, self.n_modes, \
296
- self.n_pcas, self.pca_transform_matrix_, \
297
- self.n_hidden, self.n_layers, self.architecture = pickle.load(f)
298
- f.close()
299
-
351
+ # Check if npz file exists.
352
+ filename_npz = filename + ".npz"
353
+ if not os.path.exists(filename_npz):
354
+ # Can we load this file as a pickle file?
355
+ filename_pkl = filename + ".pkl"
356
+ if allow_pickle and os.path.exists(filename_pkl):
357
+ self.restore_pickle(filename_pkl)
358
+ return
359
+
360
+ raise IOError(f"Failed to restore network from {filename}: "
361
+ + (" is a pickle file, try setting 'allow_pickle = \
362
+ True'" if os.path.exists(filename_pkl) else
363
+ " does not exist."))
364
+
365
+ with open(filename_npz, "rb") as fp:
366
+ fpz = np.load(fp, allow_pickle=True)["arr_0"].flatten()[0]
367
+
368
+ # print('filename_npz:', filename_npz)
369
+ # print("Keys in the .npz file:", list(fpz.keys()))
370
+
371
+
372
+ self.architecture = fpz["architecture"]
373
+ self.n_layers = fpz["n_layers"]
374
+ self.n_hidden = fpz["n_hidden"]
375
+ self.n_parameters = fpz["n_parameters"]
376
+ self.n_modes = fpz["n_modes"]
377
+
378
+ self.parameters = fpz["parameters"]
379
+ self.modes = fpz["modes"]
380
+
381
+ # Attempt to load 'parameters_mean' or fall back to 'param_train_mean'
382
+ self.parameters_mean_ = fpz.get("parameters_mean", fpz.get("param_train_mean"))
383
+ self.parameters_std_ = fpz.get("parameters_std", fpz.get("param_train_std"))
384
+ self.features_mean_ = fpz.get("features_mean", fpz.get("feature_train_mean"))
385
+ self.features_std_ = fpz.get("features_std", fpz.get("feature_train_std"))
386
+
387
+ # Handle PCA-related keys
388
+ # self.pca_mean_ = fpz["pca_mean"]
389
+ # self.pca_std_ = fpz["pca_std"]
390
+ # self.n_pcas = fpz["n_pcas"]
391
+
392
+ self.pca_mean_ = fpz["pca_mean"]
393
+ self.pca_std_ = fpz["pca_std"]
394
+ self.n_pcas = fpz["n_pcas"]
395
+ self.pca_transform_matrix_ = fpz["pca_transform_matrix"]
396
+
397
+ # print('n_pcas:', self.n_pcas)
398
+
399
+ # filename = "/Users/boris/Work/CLASS-SZ/SO-SZ/cosmopower-organization/lcdm/TTTEEE/TE_v1.pkl"
400
+ # f = open(filename, 'rb')
401
+ # self.W_, self.b_, self.alphas_, self.betas_, \
402
+ # self.parameters_mean_, self.parameters_std_, \
403
+ # self.pca_mean_, self.pca_std_, \
404
+ # self.features_mean_, self.features_std_, \
405
+ # self.parameters, self.n_parameters, \
406
+ # self.modes, self.n_modes, \
407
+ # self.n_pcas, self.pca_transform_matrix_, \
408
+ # self.n_hidden, self.n_layers, self.architecture = pickle.load(f)
409
+
410
+ # print('self.n_pcas:', self.n_pcas)
411
+ # print('self.pca_transform_matrix_:', self.pca_transform_matrix_)
412
+ # print('PCA mean:', self.pca_mean_)
413
+ # print('PCA std:', self.pca_std_)
414
+ # f.close()
415
+ # import sys
416
+ # sys.exit(0)
417
+
418
+ # self.pca_transform_matrix_ = fpz["pca_transform_matrix"]
419
+
420
+ # Fallback to 'weights_' if individual 'W_i' are not found
421
+ if "weights_" in fpz:
422
+ # Assign the list of weight arrays from 'weights_' directly
423
+ self.W_ = fpz["weights_"]
424
+ else:
425
+ # Use individual weight arrays if available
426
+ self.W_ = [fpz[f"W_{i}"] for i in range(self.n_layers)]
427
+
428
+ # Fallback to 'biases_' if individual 'b_i' are not found
429
+ if "biases_" in fpz:
430
+ self.b_ = fpz["biases_"]
431
+ else:
432
+ self.b_ = [fpz[f"b_{i}"] for i in range(self.n_layers)]
433
+
434
+ # Handle alphas and betas
435
+ self.alphas_ = fpz.get("alphas_", [fpz.get(f"alphas_{i}") for i in range(self.n_layers - 1)])
436
+ self.betas_ = fpz.get("betas_", [fpz.get(f"betas_{i}") for i in range(self.n_layers - 1)])
300
437
 
301
438
 
302
439
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: classy_szfast
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: The accelerator of the class_sz code from https://github.com/CLASS-SZ
5
5
  Maintainer-email: Boris Bolliet <bb667@cam.ac.uk>
6
6
  Project-URL: Homepage, https://github.com/CLASS-SZ
@@ -5,14 +5,14 @@ classy_szfast/config.py,sha256=4CvejtLcFOQR30bJ8tlEeBHhu3Rr7LakeLO6dbFgPSU,210
5
5
  classy_szfast/cosmopower.py,sha256=eym72TFAcSJSTUlrwD-sAg8_9e2GdZq0m3lLPQ7uvPU,9858
6
6
  classy_szfast/cosmosis_classy_szfast_interface.py,sha256=zAnxvFtn73a5yS7jgs59zpWFEYKCIQyraYPs5hQ4Le8,11483
7
7
  classy_szfast/pks_and_sigmas.py,sha256=drtuujE1HhlrYY1hY92DyY5lXlYS1uE15MSuVI4uo6k,6625
8
- classy_szfast/restore_nn.py,sha256=OyxaRRk9D4hOJTvUSY3c5wAWTPCZJRMxBtin4kq_xd0,14149
8
+ classy_szfast/restore_nn.py,sha256=xjwhGvd1W7fVhKvaeZNaQ9KOA4CyKuC2ornBzZmkxEo,21088
9
9
  classy_szfast/suppress_warnings.py,sha256=6wIBml2Sj9DyRGZlZWhuA9hqvpxqrNyYjuz6BPK_a6E,202
10
10
  classy_szfast/utils.py,sha256=VdaRsJK2ttHI9zkyxVhergxHPC6t99usrlycblyqcP8,1464
11
11
  classy_szfast/custom_bias/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  classy_szfast/custom_bias/custom_bias.py,sha256=aR2t5RTIwv7P0m2bsEU0Eq6BTkj4pG10AebH6QpG4qM,486
13
13
  classy_szfast/custom_profiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  classy_szfast/custom_profiles/custom_profiles.py,sha256=4LZwb2XoqwCyWNmW2s24Z7AJdmgVdaRG7yYaBYe-d9Q,1188
15
- classy_szfast-0.0.14.dist-info/METADATA,sha256=Y_uk64BUO3RTDgeBFbhe2m7ALSfkC5uAyNrhLbzPY80,472
16
- classy_szfast-0.0.14.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
17
- classy_szfast-0.0.14.dist-info/top_level.txt,sha256=hRgqpilUck4lx2KkaWI2y9aCDKqF6pFfGHfNaoPFxv0,14
18
- classy_szfast-0.0.14.dist-info/RECORD,,
15
+ classy_szfast-0.0.16.dist-info/METADATA,sha256=a5hUhLGckjGstj0NwojhKp5Ld_L-5Dlf4kLDYD4a4og,472
16
+ classy_szfast-0.0.16.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
17
+ classy_szfast-0.0.16.dist-info/top_level.txt,sha256=hRgqpilUck4lx2KkaWI2y9aCDKqF6pFfGHfNaoPFxv0,14
18
+ classy_szfast-0.0.16.dist-info/RECORD,,