def test_ae(x_train_, y_train_, x_test_, y_test_): """ AE测试 """ rst = [] # 数据展平 x_train_ = x_train_.reshape(x_train_.shape[0], -1) x_test_ = x_test_.reshape(x_test_.shape[0], -1) # 测试数据一半用于svc训练,一半用于测试 x_test_train = x_test_[:5000] y_test_train = y_test_[:5000] x_test_test = x_test_[5000:] y_test_test = y_test_[5000:] # k对应不同降维目标 for k in range(10, 200, 10): # 训练pca ae = AutoEncoder(28 * 28, k, 28 * 28) ae.fit(x_train_, x_train_) # 训练svc分类器 svc = SVC(gamma='scale') svc.fit(ae.encode(x_test_train), y_test_train) # 测试分类器 y_pred = svc.predict(ae.encode(x_test_test)) accuracy = accuracy_score(y_test_test, y_pred) print(accuracy) rst.append(accuracy) return rst
print("XShape: ", X.shape) print("Making Predictions") X_pred = (ae.predict(X_train)* sigma + mu).reshape(-1, 28, 28).astype(int).clip(0,255).astype('uint8') print("Pred Shape: ", X_pred.shape) get_random_images() IPImage('images/orig.png') print("Encoding Training Data") X_encoded=ae.encode(X_train) print("Encoded Shape: ",X_encoded.shape) print("Decoding Data") X_decoded = (ae.decode(X_encoded) * sigma + mu).reshape(-1, 28, 28).astype(int).clip(0,255).astype('uint8') print("Decoded Shape: ",X_decoded.shape) # check it worked: pic_array = get_picture_array(X_decoded, np.random.randint(len(X_decoded))) image = Image.fromarray(pic_array) image.save('images/test.png', format="PNG") IPImage('images/test.png') print("Done.")
X_train = X_train.astype(np.float32) X_out = X_train.reshape((X_train.shape[0], -1)) print("XShape: ", X.shape) print("Making Predictions") X_pred = (ae.predict(X_train) * sigma + mu).reshape(-1, 28, 28).astype(int).clip( 0, 255).astype('uint8') print("Pred Shape: ", X_pred.shape) get_random_images() IPImage('images/orig.png') print("Encoding Training Data") X_encoded = ae.encode(X_train) print("Encoded Shape: ", X_encoded.shape) print("Decoding Data") X_decoded = (ae.decode(X_encoded) * sigma + mu).reshape( -1, 28, 28).astype(int).clip(0, 255).astype('uint8') print("Decoded Shape: ", X_decoded.shape) # check it worked: pic_array = get_picture_array(X_decoded, np.random.randint(len(X_decoded))) image = Image.fromarray(pic_array) image.save('images/test.png', format="PNG") IPImage('images/test.png') print("Done.")
def _compress(self, df, index=''): ae = AutoEncoder(df.shape[0], int(df.shape[0] / 2)) ae.train(df.values, 2, 20, verbose=True) return pd.DataFrame(ae.encode(df.values.ix[:, df.columns != index]), index=index)