Ошибка в блоке else но с синтаксисом все впорядке
Вот участок кода где ошибка:
def __init__ (self, inputLayer, outputLayer, hiddenLayer = ()):
""" Иницалезирует класс """
self.inputLayer = inputLayer
self.outputLayer = outputLayer
self.hiddenLayer = hiddenLayer
self.weights = []
self.basises = []
if hiddenLayer:
self.weights.append([])
for x in range(hiddenLayer[0]):
self.weights[0].append(inputLayer)
for i in range(len(hiddenLayer) - 1):
self.weights.append([])
for j in range(hiddenLayer[i + 1]):
self.weights[i + 1].append(np.random.randint(-10, 10, hiddenLayer[i]))
self.weights.append([])
for z in range(len(hiddenLayer) - 1):
self.weights(len(hiddenLayer)).append(np.random.randint(-10, 10, outputLayer)
else:
self.weights.append([])
for i in range(outputLayer):
self.weights[0].append(np.random.randint(-10, 10, inputLayer))
А вот сама ошибка:
File "c:/Users/artem/OneDrive/Документы/CODE/python/neuralnet.py", line 45
else:
^
SyntaxError: invalid syntax
Ответы (2 шт):
Автор решения: Shamus Rezol
→ Ссылка
(c) S.Nick.
Присмотритесь к выражению до else. Там не хватает закрывающей скобочки и, конечно же, интерпретатор python'а думает, что аргументы функции продолжаются и не может определить точное место ошибки. SyntaxError и это правильное исключение. К чему так спешить и создавать новый вопрос?
self.weights(len(hiddenLayer)).append( np.random.randint(-10, 10, outputLayer) )
Автор решения: ArtemGolovko
→ Ссылка
Ура я нашел ответ
def get_weights (self, inputLayer, outputLayer, hiddenLayer):
weights = []
layes = [inputLayer] + list(hiddenLayer) + [outputLayer]
for index in range(len(layes) - 1):
weights.append([])
for _ in range(layes[index + 1]):
weights[index].append(np.random.randint(-10, 10, layes[index]))
return weights