Перейти к содержимому

Seryoga

Пользователи
  • Публикации

    100
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

Все публикации пользователя Seryoga

  1. Как определять время N? Действия? То есть мне на вход подавать выходные значения нормализованные до 0..1 ? Не, это не входные данные для FFNN, это входные параметры для семейства алгоритмов RL. N и R нужно определять исходя из окружения, например если нет гео-анализатора, то R=1, иначе выбирать в зависимости от мощности анализатора. N выбирать в зависимости от качества обучения (параметров сети). Я бы выбрал 10-30 сек на попытку. Обычно для сетей обученных данным алгоритмом: State[i-H: i] --- входные данные, где H размер истории (опять же выбирается в зависимости от скорости обучения, мощности окружения, мощности компа и тп) Actions --- выходной one hot encoded вектор размерности A, где A равно количеству действий. Номер действия равен номеру максимального значения в этом векторе. `Максимального` значения, потому что, обычно, на выходе сети стоит softmax, который создаёт не идеальный one hot вектор.
  2. @Krutoy Можешь почитать про Reinforcement Learning. Данный алгоритм обучения нейронных сетей разрабатывался для решения подобных задач: выкопать роботом максимальное количество блоков за ограниченное время. В 2013 рвали NIPS со статьями об нейронных сетях, играющих в atari игры. В качестве параметров, я бы выбрал: Скор --- количество блоков выкопанное за время N Действия --- действия робота. Состояние --- блоки от робота в радиусе R ps. Очевидно, что писать проще, чем делать, но должно сработать pss. Для lua есть библиотека Torch, в которой есть модели для обучения сетей используя Q-learning
  3. Seryoga

    Общий

    Я это и имел ввиду. Зачем мне нажимать крестик если я ознакомился с содержимым уведомления? По идее он должен был сам пропасть.
  4. Seryoga

    Общий

    Просто я иногда захожу, а тут меня жёсткие тормоза встретили. Вот и перенервничал При этом всем мобильная версия выглядит очень даже ничего
  5. Seryoga

    Общий

    1. Полоса с уведомлением не пропадает после нажатия на неё 2. Кнопка закрытия этой полосы находится слишком далеко от текста
  6. Seryoga

    Общий

    1. Загрузка страницы тикета более 30 сек (см. profile в chrome) 2. Поап при нажатии на кнопку `сервисы` (см. первое изображение) 3. Заголовок страницы с созданием тикета содержит опечатку (см. второе изображение) 4. Одинаковые имена вложений в тикетах, не удобно ссылаться (см. третье изображение) 5. На главной странице есть два способа создать пост. (см. https://cloud.custom-loft.xyz:443/index.php/s/NKmcBrcJKWSp8mQ) 6. Попапы при наведении появляются слишком быстро 7. Огромные пустые рамки у всего (см. https://cloud.custom-loft.xyz:443/index.php/s/zyYznfBHfPDtHQ6) 8. Странная функциональная линия на главной странице, её можно убрать (см. https://cloud.custom-loft.xyz:443/index.php/s/PMzZQQdYpYMHpo7) 9. http --- в 21 веке все используют https
  7. То есть ты согласен? Выбери игру на которую будем ориентироваться и начинай писать issues, а мы подтянемся. Бесконечные обсуждения ни к чему не приведут.
  8. Моё скромное мнение (тезисно): Большая команда с суммарным уровнем программирования ниже среднего; Явно не все будут увлечены идеей и рано или поздно сольются; Нужно сделать Totoro направляющим, так как у него есть способность писать issue на каждый чих, что в нашем случае является сильным преимуществом; На качественное тестирование надеяться глупо; Нужно выбрать статически типизированный язык, так как количетсво багов в коде завист экспоненциально от количесва людей в команде. Ошибки по типу `AttributeError: 'Class' object has no attribute 'field' ` будут неизбежно. Без должного тестирования их сложно отлавливать; Нужно выбирать игру с простой мехникой; Нужно выбирать игру с упором на разнообразие простых фич, так как в команде много человек, которым хочется чего-нибудь простого поделать; 2d графон, так как очень сложно нарисовать 3d картинку, которая не будет резать глаз человеку из 2018 года; Нужно выбирать пиксельный стиль, так как даже если сольётся норм художник, его почти каждый сможет заменить; Механики игры приоритетнее сюжета; Механики игры приоритетнее графония; Мультиплеер следует прикручивать в самом конце, если он вообще нужен; Как было замечено игра с изометрией или с видом сверху лучше, так как взаимодействие объектов с миром примитивное; Рогалик (данжи) и спейс-шутер удовлетворяют критериям выше; Движок для этих игр можно написать самостоятельно, так как кроме проверки пересечения кругов и прямоугольников ничего нет; Игры The Binding of Isaac, Enter the Gungeon, аркадный спейс-шутер, R-Type и тп. Также если команда самоуверенная, то можно попробовать что-то по типу с Castle Crashers®
  9. А почему тогда игру, может что-нибудь другое. Например нормальный lua-plugin для sublime или что-то такое? Если я правильно понимаю, то в играх основное --- это дизайн игры и рисование, а не программирование.
  10. Почему не использовать бы более свежие штуки, например ftp-client ftp-server?
  11. Полазив по этой теме я не нашёл ни одной ссылки на github, bitbucket или ещё на какой-нибудь хостинг кода. Чтобы можно было посмотреть его или скачать и запустить его. =( Могу утверждать точно, что найдутся люди, которые пару минут потыкают в твой ui, если ты скинешь ссылку на туториал о том как поставить твой wm. А вот априорно сказать, что кто-то будет намеренно искать баги, невозможно. Так как у всех тут есть учёба, работа или ещё какие-либо дела. Вроде как написал Объективное мнение.
  12. Эта фича является под фичей фичи 5, которую RccHD обещал сделать. Если в i3 нажать 'mode' + W, то все окна примут вид горизонтального стека. Так видно только одно окно, a остальные прячутся за ним:
  13. Я имел в виду, что у вас сейчас на разделение тратится 2 пикселя. А можно тратить 1, если сделать рамку общей для соседних окон. То есть сначала размечаем сетку. А затем отдаём ячейки программам на использование. Если я не прав в первом утверждении, то не могли бы вы скинуть скриншот текущей версии wm?
  14. Можно как-нибудь пощупать, тот wm что ты сделал? Пожелания по тому, что я увидел на скриншотах из поста. Можешь сделать возможность изменять ширину рамки окна? Например у тебя сейчас у тебя 2 пикселя хотелось бы сделать 1 или вообще убрать Можешь сделать workspaces и разных пользователей (linux: ctrl + alt + Fi)? Можешь сделать язык раскладки компьютера независимым от реальной раскладки? Можешь сделать настраиваемую панель инструментов? Чтобы пользователь сам мог туда поместить номер воркспейса, язык, майн-время, реальное время, кол-во занятой/свободной оперативки и тп. Можешь сделать шапки окошкам и дать возможность окошкам стакаться, разными способами? Можешь поддерживать горячие клавиши из i3 и дать возможность создать свои? Можешь сделать возможность поставить заставку, фон рабочего стола? Так же дать возможность разработчику приложения сделать полупрозрачные окна? Можешь сделать консоль с настраиваемым шрифтом и фоном? Можешь сделать полноценную однострочную консоль запускаемую используя горячую клавишу? По типу той что запускается в i3 на 'mode' + D (только в i3 это не консоль, но ты сделай консоль =)) Можешь сделать возможность изменения размеров окна мышкой, а так же дать возможность программисту делать перетаскиваемые окна. Например отчёт об ошибке или предупреждение так лучше выглядит. (окошечко с одной кнопкой ОК) А у тебя поддерживаются несколько мониторов? псы, ты точно пишешь ОС?
  15. Нормальные программы не должны слушать этот эвент, а должны просто перерисовываться используя значения размера окна.
  16. Даже если это так, то ты наверное понимаешь, что это всё равно не сравнимо с чтением объекта по ссылке.
  17. Переменная весит сколько весит ссылка в ОS. А вот объект на который ссылается переменная весит в зависимости от типа. Как ты понимаешь ссылка это не объект на стеке и она ссылается на объект в твоей мапе который ты и так хранишь. nil помогает в том случае если у тебя переменная находится в скопе из которого ты часами не выходишь.
  18. RccHD немного не убедительно написал, я попробую его поправить. выполнение buffer.currentFrame[index] -- обращение к переменной buffer -- обращение к полю объекта. Но мы имеем дело с lua, по-этому buffer это HashMap а currentFrame это ключ. - расчёт hash("currentFrame") - определение смещения по хешу - выборка списка (может дерева) элементов по смещению из массива - разрешение коллизий (дорого) - ... -- выборка из полученной таблицы элемента с индексом, что приводит к 'см выше' -- если вы 'lucky boss' то разрешение кеш промахов (это очень затратная операция) выборка значения переменной -- если интерпретатор lua переменную положил на стек, то это бесплатная операция, иначе: - чтение данных из ОЗУ (если есть кеш, то это тоже почти бесплатная op) - в худшем случае разрешение 1 кеш промаха Мне что-то подсказывает, что выполнять операцию (1) много раз не стоит. Если у вас есть проблемы со своевременной очисткой памяти, то можно вручную вызвать сборку мусора. Но таких проблем быть не должно. Мне кажется, что кто-то просто забывает писать ключевое слово local. И переменная весит ровно 64 бита. Если у вас локальная переменная долго живёт а объект который по ней находится больше не будет использоваться, то можно написать var = nil. И gc, по возможности, удалит объект, на который ссылалась переменная. А сама ссылка удалится как закончится её область видимости (без gc).
  19. О халявный ключик для Яндекс-переводчика =)
  20. Это топ идея: Написать бота который будет искать сервера майна с определёнными модами. На найденном сервере регистрируется и заходит на него. Дальше собирает нужное количество ресов и строит робота. В робота закладывает программу, которая сможет развернуть ферму с учётом ттх сервера. И так в цикле while (true)
  21. Это вы рассказываете где нужно наследование, а не о том где не нужно наследовать все методы.
  22. Чем вам не понравилось стандартное исполнение классов в lua? Можно ли в runtime узнать является ли объект чьим-либо наследником или нет? Создание приватных полей и методов похоже на один огромный костыль. Почему если вы не понимаете зачем нужны те или иные фишки языка, то человек который их использует -- извращенец? Мне кажется вы никогда и ничего не писали на c++ или java. Основное приимущество слов private, public, protected и тп. это статическая или очень ранняя динамическая проверка наличия ошибок в программе. static нужен для создания общей памяти для всех классов. Также эти маркеры помогают размечать память объекта, но для луа это не актуально. Насчёт извращенцев, когда вам потребуется наследовать не все методы из родительского класса? Знаете что такое singleton? Как его создать используя вашу библиотеку? Как создать несколько singleton'ов в одном пакете? Есть класс MyClass. Нужно создать метод класса, который создаёт новый объект класса MyClass и что-то с ним делает. Как это сделать? Как переопределить операторы +, -, / и тп.? Нельзя ли избавиться от двойной скобки, используя vararg? ​local Player = Class({ ... }) Какой код сложнее? local myObject = (function() local secretString = "это приватная меременная без всяких заморочек" return Class({ -- класс без конструктора publicString = "а это публичная переменная!!!" }) end)() или local MyClass = Class({ "public", public_field = "abc", "private", private_field = "def" }) Как думаете почему создатели языка lua отказались от классов?
  23. Эх, если бы чутка пораньше заметил бы этот пост, не пришлось бы самому делать первую лабораторную по ЦОСу.
×
×
  • Создать...