iterations = 200 model = autoencoder(input_layer_size, hidden_layer_size, beta, rho, lambd) input_data = unlabeledData.T theta = scipy.optimize.minimize( model.autoencoder_Cost_Grad, x0=model.theta, args=(input_data,), method="L-BFGS-B", jac=True, options={"maxiter": iterations}, ) W1 = theta.x[0 : model.W1_dim].reshape(hidden_layer_size, input_layer_size) b1 = theta.x[model.W1_dim + model.W2_dim : model.W1_dim + model.W2_dim + model.b1_dim].reshape(hidden_layer_size, 1) showHiddenIMAGES(W1, patch_size, hidden_patch_size) ############# Extracting features feedForward_train = feedForwardAutoencoder(W1, b1, trainData.T) feedForward_test = feedForwardAutoencoder(W1, b1, testData.T) a2_train = feedForward_train.hidden_layer_activiation() a2_test = feedForward_test.hidden_layer_activiation() ############# Training and testing the logistic regression model iterations = 100 option = {"maxiter": iterations} theta_labeled = softmaxTrain(hidden_layer_size, numLabels, lambd, (a2_train.T, trainLabels), option) pred = softmaxPredict(theta_labeled, (a2_test.T, testLabels))
theta_2= scipy.optimize.minimize(model_2.autoencoder_Cost_Grad, x0=model_2.theta, args = (a2_train,), method = 'L-BFGS-B', jac = True, options = {'maxiter': iterations}) W1_2 = theta_2.x[0:model_2.W1_dim].reshape(hidden_layer_size_2,hidden_layer_size_1) b1_2 = theta_2.x[model_2.W1_dim+model_2.W2_dim: model_2.W1_dim+model_2.W2_dim +model_2.b1_dim].reshape(hidden_layer_size_2,1) ####### Train the softmax classifier on the L2 features iterations = 200 option = {'maxiter':iterations} feedForward_train_2 = feedForwardAutoencoder(W1_2,b1_2, a2_train) a2_train_2 = feedForward_train_2.hidden_layer_activiation() W1_3 = softmaxTrain (hidden_layer_size_2, numLabels, lambd, (a2_train_2.T,train_set[1] ), option) ##### prediction without fine tuning pre_theta= np.concatenate ((W1_1.flatten(), W1_2.flatten(),W1_3.flatten(), b1_1.flatten(), b1_2.flatten())) feedForward_val_woFN=feedForwardstackedAEC(input_layer_size, hidden_layer_size_1, hidden_layer_size_2, numLabels,pre_theta, valid_set[0].T) a2_val_woFN = feedForward_val_woFN.hidden_layer_activiation() pred_woFN = a2_val_woFN.argmax(axis=0) accuracy_woFN = float(np.sum(np.equal(pred_woFN, valid_set[1])))/len(pred) ######## fine_tuning