大学の授業でpythonでのオートエンコーダーについて勉強していて、手書き数字画像を読み込んでAIよる手書き数字画像を出力しようとしたのですが、 以下のようにプログラミングしたAIによる手書きら、数字のほうが絵ではなく行列がそのままでてしまったのですがどうすればそれを画像に変換できるでしょうか。 from sklearn.datasets import fetch_openml mnist = fetch_openml('mnist_784') from sklearn.model_selection import train_test_split train_data,test_data, train_label, test_label = train_test_split(mnist.data, mnist.target, test_size=0.3, random_state=0) from sklearn.preprocessing import StandardScaler std_scaler = StandardScaler() std_scaler.fit(train_data) train_data_norm = std_scaler.transform(train_data) test_data_norm = std_scaler.transform(test_data) import matplotlib.pyplot as plt def show_data_picture(num, data): numdata = data.iloc[num].values.reshape(28,28) plt.imshow(numdata,'gray') def show_label_data(num, data): numlabel = data.iloc[num] def show_data_picture(num,data): numdata2 = data.iloc[num].values.reshape(28,28) plt.imshow(numdata2,'gray') print("正解= ", numdata2) import sklearn.neural_network nn_model = sklearn.neural_network.MLPClassifier( activation='relu', solver='lbfgs', hidden_layer_sizes = (784,400, 784), max_iter = 1 ) def Anser( data_check ): A=nn_model.predict( test_data_norm[data_check].reshape(1,-1)) print (data_check, " 番目の手書きデータのAIの出した答えは、", A[0]) nn_model.fit( train_data_norm, train_label ) number = 25 Anser(number) show_data_picture(number, test_data) show_label_data(number, test_label) show_data_picture(number,test_data) 私的には、2番目のブロックと最後のブロックに問題があるのではと考えています。回答よろしくお願いします。
プログラミング