Недавно я читал нейронную сеть и углубленное обучение Майкла Нильсена (ссылка) и хотел протестировать нейронную сеть на данных по умолчанию по кредиту. Однако после нескольких попыток мне все еще не удалось преобразовать данные в формате csv в требуемый формат матрицы с помощью сценария.
Файл csv содержит 769 переменных и 1 логическую запись по умолчанию. выглядит так:
. v1 v2 v3 ... v770;
1. 1 2 3 ... 0;
2. 2 1 2 ... 1;
...
Вот как я делаю свой импорт:
import numpy as np
tr_input = [np.reshape(genfromtxt('training.csv', delimiter=','), (769,10000))]
tr_res = np.reshape(genfromtxt('training2.csv', delimiter=','),(1, 10000))
tr_test = [np.reshape(genfromtxt('testing.csv', delimiter=','), (769,2000))]
tr_test2 = np.reshape(genfromtxt('testing2.csv', delimiter=','), (1, 2000))
test_data = list(zip(tr_test, tr_test2))
training_data = list(zip(tr_input, tr_res))
Однако возвращается
Traceback (most recent call last):
File "<ipython-input-8-de046f78e8ed>", line 3, in <module>
net.SGD(training_data, 30, 300, 3.0, test_data = test_data)
File "/Users/Neal/Documents/Sources/network.py", line 71, in SGD
self.update_mini_batch(mini_batch, eta)
File "/Users/Neal/Documents/Sources/network.py", line 85, in update_mini_batch
delta_nabla_b, delta_nabla_w = self.backprop(x, y)
File "/Users/Neal/Documents/Sources/network.py", line 105, in backprop
z = np.dot(w, activation)+b
ValueError: shapes (30,769) and (10000,) not aligned: 769 (dim 1) != 10000 (dim 0)
Обновлено:
Не знаю, почему genfromtxt дает первую запись NAN, но pandas работает просто отлично.
Изучив исходные учебные данные, я думаю, что мне может понадобиться преобразовать данные каждой строки в массив (769, 1), но я не знаю, как это сделать.
Прилагаются ссылки для загрузки нейронной сети и мои данные:
Нейронная сеть: https://github.com/MichalDanielDobrzanski/DeepLearningPython35
Данные: https://drive.google.com/drive/folders/1bQEqgb1o9kKNyv8_IBPlNRci5cfSYwFL?usp=sharing
(тестирование и обучение являются переменными, а тестирование2 и обучение2 являются логическими значениями по умолчанию, 0 - без значения по умолчанию и 1 - по умолчанию).