За последние 24 часа нас посетили 17185 программистов и 1650 роботов. Сейчас ищут 1033 программиста ...

Нейронная сеть на PHP. Моя первая, работающая :)))

Тема в разделе "Решения, алгоритмы", создана пользователем html-программист, 12 июн 2012.

  1. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Зачем скрывать от пользователя то, что он вводит? Если у пользователя паранойя - пусть ладошкой экран прикрывает :)))

    Добавлено спустя 12 минут 46 секунд:
    Вообще, эту всю регистрацию/авторизацию планирую переделать.
    Пользователь входит на сайт, в правом верхнем углу видит два поля: имя, пароль и кнопочку "зарегистрироваться". Вводит логин/пароль - авторизуется через Ajax (вешаем куку и извлекаем из БД данные пользователя и грузим их в сессию). Если же пользователь нажимает "Зарегистрироваться", там-же на месте выплывает формочка "Введите свой e-mail". Ничего кроме e-mailа там не будет. Пользователь вводит e-mail, выплывает окошко (опять все через Ajax): "Вы зарегистрировались в системе. Проверьте почту для активации аккаунта и получения пароля".
    Получаем от пользователя e-mail, генерируем пароль, к нему хэш. Хэш пишем в БД, пароль шлем на почту. Когда пользователь заходит под этим паролем - происходит активация аккаунта. Ну и когда пользователь авторизуется на сайте - он может придумать себе имя, аватарку, сменить пароль и т.д. В базе данных делаем флажок active=1.
    Если пользователю не пришел пароль - он может повторно под тем-же e-mail регистрироваться, пока не получит пароль и не изменится флажок active.
    Никаких капч с матанализом, кошечек-пазлов и введите три раза пароль, который мы от вас зашифруем звездочками а потом введите имя своей любимой бабушки и номер паспорта.
    Регистрация должна быть как можно примитивнее и занимать у пользователя не больше 2-х минут времени.
    Ну а как авторизуется - сможет и имя бабушки ввести, и аватарку и еще что-то, чтобы повысить свой приоритет (рейтинг) в системе саморегуляции системы)))
    Кстати, сразу и защита от ботов. Бот не сможет найти в письме пароль, чтобы авторизоваться на сайте и активировать аккаунт.

    Добавлено спустя 12 минут 5 секунд:
    Когда пользователь первый раз авторизуется на сайте - выводим в центре экрана окошко с правилами и кнопочки: "подтвердить", "отказаться". Убрать окошко нельзя, только если нажать на кнопочку. Если не нажмет - будет выскакивать каждый раз, как заходит на сайт. Если подтверждает - может перейти к заполнению данных. Если отказывается - чистим куки, сессии и удаляем из БД e-mail (точнее не удаляем, а для этого e-mail делаем active=0 (чтобы пользователь мог еще раз зарегистрироваться) и понижаем в базе данных некоторое зачение, мол, пользователь буйный)
     
  2. ApJIeKuHo

    ApJIeKuHo Активный пользователь

    С нами с:
    8 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Хм... очень интересно)
    Если надо - буду помогать с тестами сайта) Могу и с кодом.) Если конечно пустите)
    Но считаю что обязан предупредить - в php не профи, Ajax вообще не смотрел еще) Но стараюсь) Плюс "промежушей" воспринимаю нормально)
    Сейчас вот карту интерактивную свою делаю) Не люблю пользоваться чужими сервисами) Не знаю почему) Не доверяю)) *паранойя* =))
     
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Да, с тестами помощь нужна будет. Надо будет протестировать его недельку и поправить все дыры, перед тем как запустить на полную мощь.
     
  4. ApJIeKuHo

    ApJIeKuHo Активный пользователь

    С нами с:
    8 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    На сайте при регистрации ник такой же что и здесь)
    Так что моя почта у вас есть)
    Буду ждать письмо)
     
  5. ApJIeKuHo

    ApJIeKuHo Активный пользователь

    С нами с:
    8 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Такс) Лично я Java начал смотреть)
    Так что можно попытаться разобрать на пару) Если конечно есть желание) Там вроде все просто))
     
  6. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Нет, у меня неразделенная любовь, и я в тоску впал, и как-то сейчас голова вообще о программировании не думает. Нужен где-то месяц и два пакета дури, чтобы вернуть себя в состояние равновесия.
     
  7. ApJIeKuHo

    ApJIeKuHo Активный пользователь

    С нами с:
    8 авг 2012
    Сообщения:
    7
    Симпатии:
    0
    Ну как хочешь) Но лично я наоборот во время подобных кризисов с головой в код ухожу)
    Отвлекает - полностью) Ну и программки в таком состоянии лучше получаются, некоторые потом даже понять не смог каким макаром писал) Их бы щас еще найти) Может хоть на этот раз бы понял)

    Ладно) Почта есть - пиши как потребуется помощь) Или работа не пару)) Время будет - помогу)
     
  8. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    Не понимаю а в чем тут обучаемость? Судя по тексту который показывает этап обучаемости, система уже знает какую я выбрал цифру, и система просто плюсует веса тому что я выбрал.
    Можно сделать так же
    1 2 3
    я выбрал 2
    1 false
    2 false ( весы +1)
    3 false
    еще раз
    1 false
    2 false ( весы +1)
    3 false
    1 false
    2 true ( весы +1)
    3 false
    Где тут обучаемость? ведь система уже знает что я выбрал 2 ( потому что она только ему добавляет веса )
    так какой смысл в такой обучаемости?
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Да, и сравнивает ее с тем, какие данные получает от перцептронов. Если какой-то перцептрон ошибается, он получает корректировку. А ты думал, как это происходит?
     
  10. glorsh66

    glorsh66 Активный пользователь

    С нами с:
    9 июл 2017
    Сообщения:
    247
    Симпатии:
    4
    Кстати а есть либы по нейронным сетям на PHP?


    Просто как получается работают сайты которые реализуют функионал нейронный сетей допустим на Keras.
    Т.е. весь backend делается на pythone (django) или можно сделать типа прослойки - т.е. php скармливает данные keras ждет ответ, и выдает данные пользователю? (правда будет долго висеть открытое соединение, но это можно через ajax решит)
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    php-ml и FANN. Первая вроде самостоятельная, а вторая - обертка в pecl над "настоящим" FANN_ом.
    --- Добавлено ---
    Керас работат не совсем так. Это обертка над пакетом, который на выходе даст вообще скомпиленное на сях приложение-нейронку, которую можно запускать как угодно, хоть из пхп. То есть вот сервер на питоне не обязательно делать.
     
  12. Artem Z.

    Artem Z. Новичок

    С нами с:
    1 апр 2018
    Сообщения:
    27
    Симпатии:
    5
    Прям фан получил от форума по пхп, хотя и забавно ))) Автор красаучег, старается. Буду ждать на kaggle твои кернелы с пхп )))
    --- Добавлено ---
    модель сохраняется в разных форматах, вот только она скорее сериализованна, чем скомпилированна.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Да, я не совсем верно выразился. Модель Кераса "компилируется" в модель TensorFlow/Theano. Но это, разумеется, не та компиляция, которая обычно подразумевается. Это скорее как "LESS компилируется в CSS". Сохраняется она в текстовичок да. Там хранить-то надо с горсть байт, даже на мудреных архитектурах. Разница в том, что Keras - это питоновое приложение, а TensorFlow/Theano - это уже C++/C.

    Но да, зависит от того, насколько правильно был написан код. Если с кучей примесей питона, то хрен вам. По этой причине сейчас курю чистый TensorFlow, покуда на нем можно без внешнего кода, в самом графе, описать почти все, что нужно для жизни. Чем больше логики реализовано через его граф, чем меньше переключений нужно с TF на питон, тем быстрее работает конечное решение. Особенно когда речь идет о GPU. Там переключения с TF на питон прям больно бьют по производительности.
     
  14. johovich

    johovich Активный пользователь

    С нами с:
    24 авг 2016
    Сообщения:
    146
    Симпатии:
    17
    Объясни, в чем тут говнокодовость? count($numbers)?
    Мне кажется писать что-то совсем не вникая в механику процесса - невозможно. Если ты в принципе понимаешь, как цикл for работает - неважно какой у тебя будет язык.


    По топику - зачет, тихенько завидую.
     
  15. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @johovich, из мануала:
    --- Добавлено ---
    Хотя, в оригинале яснее:
    И там-же ещё разъясняется:
     
    #90 Sail, 20 июл 2018
    Последнее редактирование: 20 июл 2018
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    В том, что это не свойство объекта, содержащее длинну массива, а функция, вызываемая на каждой итерации. Правильнее писать так:

    PHP:
    1. for ($i = 0, $limit = count($array); $i < $count; $i++){
    2. //do smth
    3. }
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    :)
    --- Добавлено ---
    я уже и забыл когда последний раз for пользовался
    foreach($array as $key => $value)
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    николас_кейдж.жпг