grids = np.array([5, 10, 20, 50, 100]) train_losses_kan = [] test_losses_kan = [] steps = 50 k = 3 for i in range(grids.shape[0]): if i == 0: model = KAN(width=[2, 1, 1], grid=grids[i], k=k) else: model = KAN(width=[2, 1, 1], grid=grids[i], k=k).initialize_from_another_model(model, dataset['train_input']) results = model.train(dataset, opt="LBFGS", steps=steps, stop_grid_update_step=30) train_losses_kan += results['train_loss'] test_losses_kan += results['test_loss'] print(f"Train RMSE: {results['train_loss'][-1]:.8f} | Test RMSE: {results['test_loss'][-1]:.8f}")