Hello Clemens, thank you for your ESN implementation, which really helps me a lot in my research. Youuse np.linalg.pinv in your evaluation of W_out at line 192, pyESN.py, which can make it unstable. When I tried to transplant it from Numpy (default float type double) to PyTorch (default float type float32), the network cannot run correctly . It may be better to use self.W_out = np.linalg.lstsq(extended_states[transient:, :], self.inverse_out_activation(teachers_scaled[transient:, :])).T or self.W_out = np.linalg.solve(extended_states[transient:, :], self.inverse_out_activation(teachers_scaled[transient:, :])).T. Thanks!
Hello Clemens, thank you for your ESN implementation, which really helps me a lot in my research. Youuse
np.linalg.pinvin your evaluation ofW_outat line 192,pyESN.py, which can make it unstable. When I tried to transplant it from Numpy (default float typedouble) to PyTorch (default float typefloat32), the network cannot run correctly . It may be better to useself.W_out = np.linalg.lstsq(extended_states[transient:, :], self.inverse_out_activation(teachers_scaled[transient:, :])).Torself.W_out = np.linalg.solve(extended_states[transient:, :], self.inverse_out_activation(teachers_scaled[transient:, :])).T. Thanks!