[{'role': 'system', 'content': "You are an expert in machine learning and your task is to classify the code snippets into categories from the provided list of categories. List of categories: ['helper_functions', 'load_data', 'data_exploration', 'data_preprocessing', 'evaluation', 'modelling', 'prediction', 'result_visualization', 'save_results', 'comment_only']"}, {'role': 'user', 'content': "Identify to which category the provided code belongs and assign the code snippet to at least 1 but up to 5 categories based on the probabilities, ignore if the probability of the category is negligible. Strictly provide your response as a list. Avoid providing any additional information, commentary, or personal opinions.\\nPython Code:import numpy as np\nimport impl.utils as util\nimport impl.constant as c\nimport copy\nfrom sklearn.utils import shuffle as skshuffle\ndef get_minibatch(X, y, minibatch_size, shuffle=True):\nminibatches = []\nif shuffle:\nX, y = skshuffle(X, y)\nfor i in range(0, X.shape[0], minibatch_size):\nX_mini = X[i:i + minibatch_size]\ny_mini = y[i:i + minibatch_size]\nminibatches.append((X_mini, y_mini))\nreturn minibatches\ndef adam_rnn(nn, X_train, y_train, alpha=0.001, mb_size=256, n_iter=2000, print_after=100):\nminibatches = get_minibatch(X_train, y_train, mb_size, shuffle=False)\nidx = 0\nstate = nn.initial_state()\nsmooth_loss = -np.log(1.0 / len(set(X_train)))\nM = {k: np.zeros_like(v) for k, v in nn.model.items()}\nR = {k: np.zeros_like(v) for k, v in nn.model.items()}\nbeta1 = .9\nbeta2 = .999\nfor iter in range(1, n_iter + 1):\nt = iter\nif idx >= len(minibatches):\nidx = 0\nstate = nn.initial_state()\nX_mini, y_mini = minibatches[idx]\nidx += 1\nif iter % print_after == 0:\nprint('Iter-{} loss: {:.4f}'.format(iter, smooth_loss))\nys, caches = nn.train_step_fwd(X_mini, state)\ngrads, loss = nn.train_step_bwd(y_mini, ys, caches)\nsmooth_loss = 0.999 * smooth_loss + 0.001 * loss\nfor k in grads.keys(): #key, value: items\nM[k] = util.exp_running_avg(M[k], grads[k], beta1)\nR[k] = util.exp_running_avg(R[k], grads[k]**2, beta2)\nm_k_hat = M[k] / (1. - beta1**(t))\nr_k_hat = R[k] / (1. - beta2**(t))\nnn.model[k] -= alpha * m_k_hat / (np.sqrt(r_k_hat) + c.eps)\nreturn nn"}, {'role': 'assistant', 'content': "['helper_functions', 'modelling']"}]