Я пытаюсь создать нейронную сеть с 2 уровнями (1 -е имеет 2 нейрона, 2 -й имеет 1 нейрон), который просматривает список из 4 чисел, и если первые и третьи числа равны 1, то ответ должен быть 1 , в других случаях = 0. < /p>
Я вообще не использую библиотеки Framework, просто случайные, чтобы сделать случайные веса, а Numpy yo - средняя потери квадрата. Я знаю, что если я не устанавливаю семян -рандомизатора, он всегда будет случайным, но мои ответы слишком случайные. < /P>
У меня есть тестовый набор данных, где должен быть первый и последний список 1 и 2 -й и 3 -й - 0: < /p>
Я пытаюсь создать нейронную сеть с 2 уровнями (1 -е имеет 2 нейрона, 2 -й имеет 1 нейрон), который просматривает список из 4 чисел, и если первые и третьи числа равны 1, то ответ должен быть 1 , в других случаях = 0. < /p> Я вообще не использую библиотеки Framework, просто случайные, чтобы сделать случайные веса, а Numpy yo - средняя потери квадрата. Я знаю, что если я не устанавливаю семян -рандомизатора, он всегда будет случайным, но мои ответы слишком случайные. < /P> У меня есть тестовый набор данных, где должен быть первый и последний список 1 и 2 -й и 3 -й - 0: < /p> [code]x2 = [ [1, 0, 1, 0], # answer: 1 [1, 0, 0, 0], # answer: 0 [0, 1, 1, 0], # answer: 0 [1, 0, 1, 1] # answer: 1 ] < /code> Но каждый раз, когда я запускаю код, ответ на 1 -й и 2 -й список является более случайным, чем 3 и 4 -е. Иногда ответ на 2 -й больше, чем первым.err3 = y1[i] - neuron3.activate(pY3[i]) err1 = y1[i] - pY1[i] err2 = y1[i] - pY2[i] neuron1.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err1 * lr neuron2.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err2 * lr #(x1 is training dataset, [i] is list index and [k] is list element index) < /code> to: < /p> neuron1.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * numpy.mean(err1 ** 2) * lr neuron2.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * numpy.mean(err2 ** 2) * lr < /code> Но у меня есть ошибки oveflow.import random import math import numpy
class Neuron: def __init__(self, weightsC): self.w = [] for i in range(weightsC): self.w.append(random.random())
def activate(self, x): return max(0, x)
def predict(self, px): value = 0 for i in range(len(self.w)): value += px[i] * self.w[i] return value
'''def train(self, count, x, y, lr=0.1): print("\tTraining Start:") for i in range(count): print("EPOCH:", i) for j in range(len(x)): py = self.predict(x[j]) print("pY:", py) err = y[j] - self.activate(py) print("err:", err) for k in range(len(self.w)): self.w[k] += err * x[j][k] * lr print("w[k]", self.w[k])'''
for l in range(1000): #print("EPOCH = ", l) for i in range(len(x1)): pY1.append( neuron1.activate( neuron1.predict(x1[i]) ) ) #print("layer1_pred1 = ", pY1[i])
for k in range(len(neuron1.w)): neuron1.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err1 * lr for k in range(len(neuron2.w)): neuron2.w[k] += x1[i][k] * numpy.mean(err3 ** 2) * err2 * lr
pY1 = pY2 = pY3 = []
print("testing") for item in x2: pred1 = neuron1.activate(neuron1.predict(item)) pred2 = neuron2.activate(neuron2.predict(item)) print(neuron3.predict([pred1, pred2])) < /code> Upd: я изменил обучение на это: < /p> for l in range(1000): #print("EPOCH = ", l) layer1_pred = [] for i in range(len(x1)): pY1.append( neuron1.activate( neuron1.predict(x1[i]) ) ) #print("layer1_pred1 = ", pY1[i])
err3 = [] for i in range(len(x1)): err3.append(y1[i] - neuron3.activate(pY3[i]))
for i in range(len(neuron3.w)): neuron3.w[i] += layer1_pred[i] * numpy.mean(err3) ** 2 * lr
err1 = [] err2 = [] for i in range(len(x1)): err1.append(y1[i] - pY1[i]) err2.append(y1[i] - pY2[i])
for i in range(len(x1)): for k in range(len(neuron1.w)): neuron1.w[k] += x1[i][k] * (numpy.mean(err3) ** 2) * (numpy.mean(err1) ** 2) * lr for k in range(len(neuron2.w)): neuron2.w[k] += x1[i][k] * (numpy.mean(err3) ** 2) * (numpy.mean(err2) ** 2) * lr
pY1 = pY2 = pY3 = [] [/code] Теперь прогнозы не так высоки, но все еще случайно.
Я пытаюсь создать нейронную сеть с 2 уровнями (1 -е имеет 2 нейрона, 2 -й имеет 1 нейрон), который просматривает список из 4 чисел, и если первые и третьи числа равны 1, то ответ должен быть 1 , в других случаях = 0.
Я вообще не использую...
Использование макроса X, чтобы сохранить пару разных вещей в синхронизации, используя список предоставленного модуля.
Я сейчас делаю это:
if (0) {
// this will never run, and be compiled out
}
#define X(name) else if (some_thing == #name) { // do...
В своем приложении я пытаюсь сделать запрос на послание HTTPS на мой сервер. Я попытался отправить запрос, используя почтальон, и получил ответ от сервера. Что может вызвать эту ошибку, когда я пытаюсь отправить запрос из приложения?
Я завершаю проект по управлению книгами.
Кроме того, я хочу добавить в свою программу программу, вводом которой является фрагмент текста (из документов или из изображения),
После этого, программа вернет возможное название этой книги (как мы ищем в...