Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2021 12:20:56

nickson.b.k
Зарегистрирован: 2021-04-29
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Не компилируется код из книги

Доброго времени!
Изучаю НС по книге, где автор использует питухон.
Основная задача, как читающего, это перенабрать код из книги по мере изучения материала.
Проблема в том, что на очередной проверке верности работы кода, код выдаёт ошибку. Как ее решить, не представляю, так как не понимаю какого хрена оно ругается, если всё должно быть норм.

вот создаваемый класс, который перенабран с книги:

import numpy
import scipy.special

# определение класса нейронной сети
class neuralNetwork:

#инициализация нейронной сети
def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
#задать количество узлов во входном, скрытом и выходном слое
self.inodes = inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes

#матрицы весовых коэффициентов связей wih (между входным и скрытым
#слоем) и who (между скрытым и выходным слоем)
#Выссовые коэффиуиенты связей между узлом i и узлом j следующего слоя
#обозначены как w_i_j:
#w11 w21
#w12 w22 и т.д.
self.wih = numpy.random.normal(0.0, pow(self.hnodes, -0.5), (self.hnodes, self.inodes))
self.who = numpy.random.normal(0.0, pow(self.onodes, -0.5), (self.onodes, self.hnodes))

#коэффициент обучения
self.lr = learningrate

#использование сигмоиды в качестве функции активации
self.activation_function = lambda x: scipy.special.expit(x)

pass

#тренировка нейронной сети
def train():
pass

#опрос нейронной сети
def query(self, inputs_list):

#преобразовать список входныхзначений в двумерный массив
inputs = numpy.array(inputs_list, ndmin=2).T

# рассчитать входящие сигналы для скрытого слоя
hidden_inputs = numpy.dot(self.wih, inputs)
#расчитать исходящие сигналы для скрытого слоя
hidden_outputs = self.activation_function(hidden_inputs)

# рассчитать входящие сигналы для выходного слоя
final_inputs = numpy.dot(self.who, hidden_outputs)
# рассчитать исходящие сигналы для выходного слоя
final_outputs = self.асtivation_function(final_inputs)

hidden_inputs = numpy.dot(self.wih, inputs)

return final_outputs


После автор предлагает создать объект данного класса:
#количество входных, скрытых и выходных узлов
input_nodes = 3
hidden_nodes = 3
output_nodes = 3

# коэффициент обучения
learning_rate = 0.3

# создаём эккземпляр (объект класса)
n = neuralNetwork(input_nodes, hidden_nodes, output_nodes, learning_rate)


А после идёт пример, в котором должен вывестись массив, а в моём случае идёт ругать
 n.query([1.0, 0.5, -1.5])
_________________________________
—————————————————————————
AttributeError Traceback (most recent call last)
<ipython-input-41-bfcec7d26f9a> in <module>
—-> 1 n.query()

<ipython-input-37-3edcc29c27b9> in query(self, inputs_list)
47 final_inputs = numpy.dot(self.who, hidden_outputs)
48 # рассчитать исходящие сигналы для выходного слоя
—> 49 final_outputs = self.асtivation_function(final_inputs)
50
51 hidden_inputs = numpy.dot(self.wih, inputs)

AttributeError: ‘neuralNetwork’ object has no attribute ‘асtivation_function’

Отредактировано nickson.b.k (Апрель 29, 2021 12:21:53)

Офлайн

#2 Апрель 29, 2021 21:47:27

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Не компилируется код из книги

оно вам говорит что у neuralNetwork нет атрибута/метода асtivation_function
в

 final_outputs = self.асtivation_function(final_inputs)
закралась кирилица.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 29, 2021 21:48:16)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version