@davamar

Решил попробовать написать нейросеть по видео хауди хо(Нейросеть своими руками за 10 мин). Что пошло не так?

Ниже мой код написанный на Python. Проблема на 19 строчке. Пишет Возникло исключение: ValueError (note: full exception trace is shown but execution is paused at: )
shapes (4,1) and (3,1) not aligned: 1 (dim 1) != 3 (dim 0)
File "D:\VS CODE\import math.py", line 19, in (Current frame)
outputs = sigmoid( np.dot(input_layer, synaptic_weights) )
Как это исправить? И пожалуйста я пока что чайник обыкновенный потому если можно не сильно грузить сленгом программистов))))
https://www.youtube.com/watch?v=WFYxpi3O950 - ссылка на видео которому следовал

import numpy as np

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

training_inputs = np.array([[0,0,1], [1,1,1], [1,0,1], [0,1,1]])

training_outputs = np.array([[0,1,1,0]]).T

np.random.seed(1)

synaptic_weights = 2 * np.random.random((3,1)) -1

print("Случайные инициалищирующие веса:")
print(synaptic_weights)

for i in range(20000):
    input_layer = training_outputs
    outputs = sigmoid( np.dot(input_layer, synaptic_weights) )
    
err = training_outputs - outputs
adjustments = np.dot( input_layer.T, err * (outputs * (1-outputs)) )
    
synaptic_weights += adjustments
print ("Весы после обучения: ")
print (synaptic_weights)

print("Результат:" )
print(outputs)
  • Вопрос задан
  • 580 просмотров
Пригласить эксперта
Ответы на вопрос 2
@xandox
У тебя шейпы не совпадают. Довольно популярная проблема. Помогает вывод всех шейпов и внимательное разглядывания вывода
for i in range(20000):
    input_layer = training_outputs # тут должен быть training_inputs, скорее всего и не весь, а по индексу
    outputs = sigmoid( np.dot(input_layer, synaptic_weights) )


Если честно, весь код выглядит как бред. Он ничего не обучет, даже если исправить проблему с шейпами. Наверное надо еще раз пересмореть видео
Ответ написан
Комментировать
@ehevnlem
Программирую с 1975, в интернете с 1993.
программа для нейросети это задача для пятикласника. разберешься. но обучить нейросеть это действительно сложно. а без обучения твоя сеть бесполезна. так что осваивай обучение нейросети
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы