Я пытаюсь отредактировать данный код машинного обучения, который работает в 3 различных учебных сетях.Цель состоит в том, чтобы использовать MLPClassifier
из scikit-learn.Ошибка, которую я продолжаю получать, состоит в том, что я устанавливаю элемент массива с последовательностью.Я понимаю, что данные являются кортежами, но не уверен, как их изменить, чтобы можно было использовать классификатор.Я новичок в Python и пытаюсь понять массивы и матрицы в настоящее время.Это то, что я до сих пор.Ошибка исходит из последней строки. Должен ли я разделить данные по-другому или преобразовать их в не кортеж?Любой совет был бы великолепен!
# To support both python 2 and python 3
from __future__ import division, print_function, unicode_literals
# Common imports
import numpy as np
import os
# Standard library
import random
# to make this notebook's output stable across runs
np.random.seed(42)
# To plot pretty figures
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12
# Where to save the figures
PROJECT_ROOT_DIR = "."
CHAPTER_ID = "classification"
def save_fig(fig_id, tight_layout=True):
path = os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id + ".png")
print("Saving figure", fig_id)
if tight_layout:
plt.tight_layout()
plt.savefig(path, format='png', dpi=300)
#import and split the dataset
import mnist_loader
training_data, validation_data, test_data = map(list,mnist_loader.load_data_wrapper())
training_data = list(training_data)
print(len(training_data))
#Setting up and training 1st network
import network
net1 = network.Network([784, 30, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net1.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)
#Second Network
import network
net2 = network.Network([784, 100, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net2.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)
#3rd Network
import network
net3 = network.Network([784, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net3.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)
#Use Classification Built-in Neural Network from Scikit-Learn
from sklearn.neural_network import MLPClassifier
mlp= MLPClassifier(hidden_layer_sizes=(100,),activation='logistic',solver='sgd',batch_size=10,max_iter=30,learning_rate_init=3,learning_rate='constant')
mlp.fit(training_data,test_data)