def data(): nb_dim=50 (X_train, y_train), (X_test, y_test) = cifar100.load_data(label_mode='fine') # convert class vectors to w2v class matrices Y_train = get_w2v_labels(y_train, dim=nb_dim) Y_test = get_w2v_labels(y_test, dim=nb_dim) X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255 X_test /= 255 return X_train, Y_train, X_test, Y_test
def report_w2v_accuracy(X, y, nb_dim, prefix_string='w2v'): Y = get_w2v_labels(y, dim=nb_dim) Y_predict = model.predict(X, batch_size=batch_size, verbose=1) accuracy, class_, accuracy_c, class_c, accuracy_c2, class_c2 = accuracy_w2v_coarse(Y_predict, Y, dim=nb_dim) """ print(np.sum(class_,axis=0)) print(np.argmax(np.sum(class_,axis=0))) print(classes[np.argmax(np.sum(class_,axis=0))]) """ print("%s accuracy: %f" % (prefix_string, accuracy)) print("%s coarse accuracy: %f" % (prefix_string, accuracy_c)) print("%s coarse v2 accuracy: %f" % (prefix_string, accuracy_c2))
elif 'w2v' in model_name: # Load and format the data (X_train, y_train), (X_test, y_test) = cifar100.load_data(label_mode='fine') X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255 X_test /= 255 # Figure out how many dimensions were used for d in [200,100,50,25,10]: if 'd%s'%d in model_name: nb_dim = d break Y_train = get_w2v_labels(y_train, dim=nb_dim) Y_test = get_w2v_labels(y_test, dim=nb_dim) #NOTE: due to changes in keras, model has to be compiled before being used here #TODO: do the parameters that it is compiled with matter? might need to get them exactly optimizers = ['sgd','rmsprop','adam'] losses = ['mse','msle'] model.compile(optimizer=optimizers[2],loss=losses[0]) Y_predict_test = model.predict(X_test, batch_size=batch_size, verbose=1) Y_predict_train = model.predict(X_train, batch_size=batch_size, verbose=1) #test_accuracy, test_class = accuracy_w2v(Y_predict_test, Y_test, dim=nb_dim) test_accuracy, test_class, test_accuracy_c, test_class_c, test_accuracy_c2, test_class_c2 = accuracy_w2v_coarse(Y_predict_test, Y_test, dim=nb_dim) #train_accuracy, train_class = accuracy_w2v(Y_predict_train, Y_train, dim=nb_dim)