-
What is the difference between using # 1st case
RPU_CONFIG = InferenceRPUConfig()
RPU_CONFIG.backward.bound_management = BoundManagementType.NONE
RPU_CONFIG.forward.out_res = 2 / (2**8 - 1)
RPU_CONFIG.forward.inp_res = 2 / (2**8 - 1)
RPU_CONFIG.forward.w_noise_type = WeightNoiseType.ADDITIVE_CONSTANT
RPU_CONFIG.forward.w_noise = W_NOISE
RPU_CONFIG.forward.out_noise = O_NOISE
RPU_CONFIG.noise_model = PCMLikeNoiseModel(g_max=G_MAX)
# 2nd case
RPU_CONFIG = ReRamSBPreset()
# 3rd case
RPU_CONFIG = PCMPreset() I have pre-trained models that I am converting to analog using What is the difference between using an |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
The For inference only chips, the expected programming noise and drift can be set by the |
Beta Was this translation helpful? Give feedback.
The
InferenceRPUConfig
is used for accuracy estimation for a situation where the resistive crossbar arrays are only used in the inference pass (training is done in FP and only inference is using the resistive devices). The other presets are used for in-memory training with forward / backward and update in "analog" and updating using stochastic pulse trains in a fully parallel manner. This is typically very challenging and might need special optimizers such asMixedPrecision
/ orTikiTaka
for which we also have presets.For inference only chips, the expected programming noise and drift can be set by the
noise_model
setting.