Я снова пытаюсь использовать Python, NumPy
и массивы, чтобы вычислить некоторые вычисления между матрицами.Проблемы с размерами массивов Python
Код часть, которая, скорее всего, не работает должным образом выглядит следующим образом:
train, test, cv = np.array_split(data, 3, axis = 0)
train_inputs = train[:,: -1]
test_inputs = test[:,: -1]
cv_inputs = cv[:,: -1]
train_outputs = train[:, -1]
test_outputs = test[:, -1]
cv_outputs = cv[:, -1]
При печати этих матриц информации (np.ndim
, np.shape
и dtype
соответственно), это то, что вы получите:
2
1
2
1
2
1
(94936, 30)
(94936,)
(94936, 30)
(94936,)
(94935, 30)
(94935,)
float64
float64
float64
float64
float64
float64
Я считаю, что отсутствует 1 размер во всех *_output
массивов.
Другая матрица мне нужна создается с помощью этой команды:
newMatrix = neuronLayer(30, 94936)
В каком neuronLayer
класс определяется как:
class neuronLayer():
def __init__(self, neurons, neuron_inputs):
self.weights = 2 * np.random.random((neuron_inputs, neurons)) - 1
Вот конечный результат:
outputLayer1 = self.__sigmoid(np.dot(inputs, self.layer1.weights))
ValueError: shapes (94936,30) and (94936,30) not aligned: 30 (dim 1) != 94936 (dim 0)
Python явно говорит мне, что матрицы не складываются, но я не понимаю, e - проблема.
Любые советы?
PS: полный код вставлен ħere.
При использовании 'dot (x, y)' (на 2d массивах) numpy требует, чтобы формы 'x' и' y' соответствовали '(A, B)' и '(B, C)', тогда как ваши - '(A, B)' и '(A, B)' – Eric
Как упоминалось ниже, попытка, которая приведет к ошибке «Ошибка памяти». Не уверен, что это связано с моим старым компьютером или так, но изначально считалось, что это не было правильным решением. –
Что такое «точка», которую нужно производить? 30x30 или 94936x94936 (слишком большой?) Массив? – hpaulj