Форум сайта python.su
Всем доброго времени суток!
Очень срочно нужно было разобраться с кодом на пайтоне, смотрю пример человека, что выкладывает код, у него все хорошо, принт выводит все, что нужно, в консоль, и код работает. Ctrl+C Ctrl+V - бам - проблема.
# Порог функции активации
bias = 7
# Является ли данное число 5
def proceed(number):
# Рассчитываем взвешенную сумму
net = 0
for i in range(15):
net += int(number)*weights
# Превышен ли порог? (Да - сеть думает, что это 5. Нет - сеть думает, что это другая цифра)
return net >= bias
Выдает ошибку синтаксиса - ‘return’ outside function
Хотелось бы узнать, как разобраться здесь с табуляцией.
+ Программа завершается с выходом в 1, но ничего из print не выводит в консоль. Код прилагаю
import random
# Цифры (Обучающая выборка)
num0 = list('111101101101111')
num1 = list('001001001001001')
num2 = list('111001111100111')
num3 = list('111001111001111')
num4 = list('101101111001001')
num5 = list('111100111001111')
num6 = list('111100111101111')
num7 = list('111001001001001')
num8 = list('111101111101111')
num9 = list('111101111001111')
# Список всех вышеуказанных цифр
nums =
# Виды цифры 5 (Тестовая выборка)
num51 = list('111100111000111')
num52 = list('111100010001111')
num53 = list('111100011001111')
num54 = list('110100111001111')
num55 = list('110100111001011')
num56 = list('111100101001111')
# Инициализация весов сети
weights =
for i in range(15):
weights.append(0)
# Порог функции активации
bias = 7
# Является ли данное число 5
def proceed(number):
# Рассчитываем взвешенную сумму
net = 0
for i in range(15):
net += int(number)*weights
# Превышен ли порог? (Да - сеть думает, что это 5. Нет - сеть думает, что это другая цифра)
return net >= bias
# Уменьшение значений весов, если сеть ошиблась и выдала 1
def decrease(number):
for i in range(15):
# Возбужденный ли вход
if int(number) == 1:
# Уменьшаем связанный с ним вес на единицу
weights -= 1
# Увеличение значений весов, если сеть ошиблась и выдала 0
def increase(number):
for i in range(15):
# Возбужденный ли вход
if int(number) == 1:
# Увеличиваем связанный с ним вес на единицу
weights += 1
# Тренировка сети
for i in range(10000):
# Генерируем случайное число от 0 до 9
option = random.randint(0, 9)
# Если получилось НЕ число 5
if option != 5:
# Если сеть выдала True/Да/1, то наказываем ее
if proceed(nums):
decrease(nums)
# Если получилось число 5
else:
# Если сеть выдала False/Нет/0, то показываем, что эта цифра - то, что нам нужно
if not proceed(num5):
increase(num5)
# Вывод значений весов
print(weights)
# Прогон по обучающей выборке
print(“0 это 5? ”, proceed(num0))
print(“1 это 5? ”, proceed(num1))
print(“2 это 5? ”, proceed(num2))
print(“3 это 5? ”, proceed(num3))
print(“4 это 5? ”, proceed(num4))
print(“6 это 5? ”, proceed(num6))
print(“7 это 5? ”, proceed(num7))
print(“8 это 5? ”, proceed(num8))
print(“9 это 5? ”, proceed(num9), ‘\n’)
# Прогон по тестовой выборке
print(“Узнал 5? ”, proceed(num5))
print(“Узнал 5 - 1? ”, proceed(num51))
print(“Узнал 5 - 2? ”, proceed(num52))
print(“Узнал 5 - 3? ”, proceed(num53))
print(“Узнал 5 - 4? ”, proceed(num54))
print(“Узнал 5 - 5? ”, proceed(num55))
print(“Узнал 5 - 6? ”, proceed(num56))
Офлайн
woogiemanУ тебя вообще код неправильно на форум отправлен. Вот научись для начала собеседникам точно код передавать. Догадки никто строить не будет, просто проигнорируют, пока не отправишь всё правильно.
Выдает ошибку синтаксиса - ‘return’ outside function
Хотелось бы узнать, как разобраться здесь с табуляцией.
Офлайн