Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.05.2018
Сообщений: 20
1

Составить вручную программу для обучения, не используя существующие модули

29.01.2022, 19:33. Показов 611. Ответов 3

Author24 — интернет-сервис помощи студентам
Требуется решить вариант под номером 5. Пытался сделать, но не получилось

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import numpy as np
 
# обучающая выборка (она же полная выборка)
epoch = [(1, 1, 1, 6),
         (1, 1, 3, 12),
         (1, 2, 3, 12),
         (1, 2, -3, -4),
         (1, 4, -3, 0),
         (2, 4, -3, 1),
         (2, 0, 4, 14),
         (5, 2, 4, 21),
         (1, 4, -2, 3),
         (1, 3, -2, 1),
         (10.5,3.1,-2.1, 10.399999),
         (1,1,2, 9)]
 
 
def f(x):
    return 2 / (1 + np.exp(-x)) - 1
 
 
def df(x):
    return 0.5 * (1 + x) * (1 - x)
 
 
W1 = np.array([[-0.2, 0.3, -0.4], [0.1, -0.3, -0.4], [0.2, 0.3, 0.4]])
W2 = np.array([0.2, 0.3, 0.4])
 
 
def go_forward(inp):
    sum = np.dot(W1, inp)
    out = np.array([f(x) for x in sum])
 
    sum = np.dot(W2, out)
    y = f(sum)
    return (y, out)
 
 
def train(epoch):
    global W2, W1
    lmd = 0.01  # шаг обучения
    N = 10000  # число итераций при обучении
    count = len(epoch)
    for k in range(N):
        x = epoch[np.random.randint(0, count)]  # случайных выбор входного сигнала из обучающей выборки
        y, out = go_forward(x[0:3])  # прямой проход по НС и вычисление выходных значений нейронов
        e = y - x[-1]  # ошибка
        delta = e * df(y)  # локальный градиент
        W2[0] = W2[0] - lmd * delta * out[0]  # корректировка веса первой связи
        W2[1] = W2[1] - lmd * delta * out[1]  # корректировка веса второй связи
        W2[2] = W2[2] - lmd * delta * out[2]  # корректировка веса третьей связи
 
        delta2 = W2 * delta * df(out)  # вектор из 2-х величин локальных градиентов
 
        # корректировка связей первого слоя
        W1[0, :] = W1[0, :] - np.array(x[0:3]) * delta2[0] * lmd
        W1[1, :] = W1[1, :] - np.array(x[0:3]) * delta2[1] * lmd
        W1[2, :] = W1[2, :] - np.array(x[0:3]) * delta2[2] * lmd
 
train(epoch)  # запуск обучения сети
 
def schet(x):
    y = 0
    for i in range(len(x)):
        y += W2[i]*x[i]
    return y
 
# проверка полученных результатов
for x in epoch:
    y, out = go_forward(x[0:3])
    print(f"{y} => {x[-1]}")
 
 
x = [1,1,2]
y = schet(x)
print('\n',y)
Миниатюры
Составить вручную программу для обучения, не используя существующие модули  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2022, 19:33
Ответы с готовыми решениями:

Составить программу для обучения переводу чисел из двоичной сс в восьмеричную и шестнадцатеричную
Составить программу для обучения переводу чисел из двоичной системы счисления в восьмеричную и...

Составить программу для обучения переводу числа из двоичной системы счисления в 8-ю и 16-ю
Доброго времени суток собрал тут программку простую. Задание: Составить программу для обучения...

Составить программу,используя оператор Repeat.Составить программу для определения N!-M!,где N!=1*2*3...n.
Составить программу,используя оператор Repeat.Составить программу для определения N!-M!,где...

Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и обратно.
Составить программу для обучения переводу чисел из десятичной системы счисления в 16-ричную и...

3
-32 / 2 / 0
Регистрация: 25.01.2022
Сообщений: 10
29.01.2022, 20:34 2
Почему вы не пользуетесь модулем Random?
0
1567 / 1493 / 248
Регистрация: 19.02.2010
Сообщений: 4,048
29.01.2022, 20:37 3
Dragakil, Область значений функции f(x) какая? А ты от неё хочешь получить значения от -4 до 21.
Т.е. либо меняй архитектуру сети - либо разбирайся с нормализацией данных.
Дальше я внимательно не смотрел.
0
-32 / 2 / 0
Регистрация: 25.01.2022
Сообщений: 10
29.01.2022, 21:19 4
Он по моему пытается исполнить turtle is a pre-installed Python library
)))

Добавлено через 7 минут
Код
def grandfather():
    print('Дедка зовёт бабку.')
    grandmother()
    print('Дедка за репку!')

def grandmother():
    print('Бабка зовёт внучку.')
    granddaughter()
    print('Бабка за дедку.')

def granddaughter():
    print('Внучка зовёт жучку.')
    dog()
    print('Внучка за бабку!')

def dog():
    print('Жучка зовёт кошку.')
    cat()
    print('Жучка за внучку!')

def cat():
    print('Кошка зовёт мышку.')
    mouse()
    print('Кошка за жучку!')

def mouse():
    print('Мышка никого не зовёт. Мышка просто тянет за кошку.')
print(grandfather())
0
29.01.2022, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2022, 21:19
Помогаю со студенческими работами здесь

Составить программу для обучения переводу чисел из двоичной системы счисления в 8ую и 16ую и обратно
составить программу для обучения переводу чисел из двоичной системы счисления в 8ую и 16ую и...

Составить программу для решения поставленных задач с разделением задачи на отдельные модули в виде функций
В нескольких студенческих группах проводится анонимное психологическое обследование с помощью...

Обучение переводу из 10-й системы счисления в двоичную. Составить программу для обучения переводу чисел из десятичной си
Не работает первая часть программы, при выборе 1, предлагается число и сразу выводится сообщение...

Составить программу обучения работе с клавиатурой.
Доброго времени суток. Напишите, пожалуйста, код программы на С#. Задание выглядит следующим...

Составить программу обучения устному счету
«Устный счет». Составить программу обучения устному счету. На каждом шаге должны предлагаться числа...

Составить программу обучения работе с клавиатурой
Помогите составить программу обучения работе с клавиатурой, которая выдает на экран буквы, цифры,...

Составить программу обучения устному счету
«Устный счет». Составить программу обучения устному счету. На каждом шаге должны предлагаться числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru