Igor
Я просто на таблицу вешал метод __gc и ждал пока он хоть раз вызовется
Igor
И принудительно мусорщика стартовал
Igor
Ничего не происходило
Snusmumriken
У луажыта (и 5.1) метод __gc на таблицах не работает, только на userdata.
Snusmumriken
Чтобы реально что-то дёрнулось — прицепи к таблице вот такую фигню: function obj:new() self.forgc = setmetatable( newproxy(), {__gc = function() print("table", self, "collected" ) end} ) end Когда табличка соберётся, соберётся и юзердата с дёрнутым __gc.
Snusmumriken
Но у памяти которое жрут приложения есть несколько проблем, под названием "венда практически никогда не освобождает память", а луашка начинает раздупляться на почистить в основном когда ты переходишь рубеж "объём памяти * 2" или около того, и сдвигает следующий рубеж до полученного на прошлом шаге значения * 2, чтобы не напрягаться лишний раз.
Hello, World! 🎄
Luсky Ook, помнишь ты про branchless писал в другой группе?
Hello, World! 🎄
В общем я написал на Python и C нахождение максимального числа из массива и с if быстрее чем без него
Hello, World! 🎄
Код
Hello, World! 🎄
Возможно это из-за большего кол-ва операций и времени на их выполнение: max = ((a[i] > max) * a[i]) + ((a[i] <= max) * max); Чем: if(a[i] > max){ max = a[i]; }
Hello, World! 🎄
Если искать сумму если элемент >50, тогда branchless быстрее ветвления.
Snusmumriken
Branchless полностью jit'уется, по дефолту, в случае использования jit'а.
Luсky
а есть примеры бранчлесс-кода на Lua?
Snusmumriken
Ну например branches = {} branches.foo = function() ... end branches.bar = function() ... end for i, v in ipairs(data) do branches[v.key](v) end Оно хорошо jit'уется.
Egor
Приветы. Кто-нибудь делал oauthчерез гугл для SPA приложения? Не очень понимаю как вообще сделать. Если это классическое приложение, где хтмл генерится на бэкэ, то все делается легко, а как быть с SPA? Где и как токены хранить?
Snusmumriken
Приветы. Кто-нибудь делал oauthчерез гугл для SPA приложения? Не очень понимаю как вообще сделать. Если это классическое приложение, где хтмл генерится на бэкэ, то все делается легко, а как быть с SPA? Где и как токены хранить?
Ну собсно вот. https://developers.google.com/identity/protocols/oauth2 Ты на страничке девелопера гугла заводишь новое приложение, лепишь туда всякие ключи, именуешь и т.д. Гугл в ответ даёт тебе ссылку, на которую ты редиректишь для логина пользователя. Ты предлагаешь юзеру эту ссылку а ля "залогиниться под данным юзером", он заходит по гугловой ссылке, логинится там, гугл редиректит его обратно тебе на сайт (урл редиректа помнится тоже прописывается) со свежими данными в query а ля "токен-фигокен". Записываешь себе где-нибудь токен, выдаёшь юзеру куку. По этой куке он теперь логинится. Это если я правильно помню механизм.
Hello, World! 🎄
Пытаюсь научится писать нейросети, простой перцептрон (2 входа, 1 скрытый слой с 2 нейронами, 1 выходной слой с 1 нейроном). Нейросеть училась по 4 примерам (массив data) складывать числа. После 10 тысяч раз, результат стал очень близким к значению.
Hello, World! 🎄
Только вместо сигмоиды я взял, вот эту функцию (т.к тут область значений подходит для результата)
Hello, World! 🎄
С минусом тоже без проблем все работает
Hello, World! 🎄
А вот с умножением далеко от идеальных значений
Hello, World! 🎄
Если со сложением все понятно, что каждая цифра имеет значение которое добавляется к общей сумме. То с умножением нейросеть должна знать, что умножение на 0 это 0, что на 1 это же число. Скорее всего для решение такой задачи нужно добавить еще нейроны в сеть для хранения более сложного состояния.
Igor
Молодец какой, нейронки считать учишь. Это тебе зачтётся, когда роботы поработят кожаных.
Hello, World! 🎄
Молодец какой, нейронки считать учишь. Это тебе зачтётся, когда роботы поработят кожаных.
Так сейчас нейросети это просто алгоритм, они и думать не умеют что существуют.
Igor
Так сейчас нейросети это просто алгоритм, они и думать не умеют что существуют.
С обработкой шуток, как я вижу, дела у тебя тоже не очень
Luсky
Оставайтесь на месте. Полиция уже выехала.
Hello, World! 🎄
Немного обновил нейросеть, теперь на вход 3 параметра, 1 скрытый слой с 3 нейронами и 1 выходной нейрон. Задача нейросети определить последовательный ли ряд чисел. Примерно +- нейросеть справилась.
Hello, World! 🎄
Только не до конца понял метод обратного распростанения, как будет меняться расчет весов и сдвигов если я добавлю еще 1 скрытый слой или если добавить еще 1 выходной нейрон.
wrong version of python
Hello, World! 🎄
why?
Domka
._.
Domka
В чем беда то лять
Domka
Почему у меня два бота смешивают ебанные параметры
Domka
Добавляю их при помощи функции которую дал снус, все ок они приобретают разные таблицы не смешиваются, проходит время
Domka
И какого то хуя у снаряда этих двоих дебилов одинаковые корды и скорость суммируется
Domka
Бред какой та...
Snusmumriken
Ааа, вспомнил
Domka
function newmob(a) local b={} for k,p in pairs(a)do b[k]=p end bots[1][#bots[1]+1]=b end
Domka
Дап...
Domka
Они вродь уже в разных таблицах отдельно друг от друга живут
Domka
И все равно сука как то смешиваютс
Snusmumriken
function newmob(a) local b={} for k,p in pairs(a)do b[k]=p end bots[1][#bots[1]+1]=b end А вот это что такое? bots[1][#bots[1]+1]=b Что это за чепушня? Я тебе такую не давал.
Domka
Это типо подтип
Snusmumriken
Зачем?
Domka
Чтоб разные типы врагов в одной таблице хранить
Snusmumriken
Мммм.
Snusmumriken
А зачем? ))
Snusmumriken
Делаешь всем по функции update/draw и радуешься жизни. Храня в одной и той же табличке, пробегая по каждому.
Domka
Чтобы разные типы врагов в одной таблице хранить
Snusmumriken
А почему бы не смешивать?
Snusmumriken
У тебя враги чем-то критично отличаются?
Snusmumriken
Опиши эти различия в функциях update и draw.
Domka
Суть то в том... что тип врагов под индексом 1 пускает лазер
Snusmumriken
Опиши это в функции update бота типа laserbot.
Domka
Скорость которого умножается магическим образом на колво врагов в таблице под индексом 1
Snusmumriken
Магии тут нет, это ты умножаешь.
Snusmumriken
Ещё бОльшие портянки ты мог выложить? Ну там, метров на 500 ))
Domka
Сорян :^/
Domka
Ну ля, как мне описать проблему, опять же с моей точки зрения все логично, я даже уроки по таблицам как посмотрел так и почитал, все блять работать должно, но не работает...
Igor
Есть у кого-нибудь исходники luadec для Lua 5.0? А то luaforge мёртв, хрен скачаешь, даже web.archive не спас
Igor
Нигде вообще не могу найти, а в скриптах игры олдовой покапаться охота
Igor
Ну, относительно олдовой
Igor
Из хедера я понял, что она Lua 5.0 машинку использует
Domka
Што...
Domka
Ты тип две отдельные таблицы сделал?
Snusmumriken
Я сделал два "прототипа" для разных ботов.
Snusmumriken
А потом пихаю их в одну кучу.
Domka
А один прототип не получитс хранить ._?
Snusmumriken
Чел
Domka
Чел я
Snusmumriken
Когда у тебя поведение объекта меняется не от его личных свойств, а от места где он расположен — у тебя проблемы ))
Domka
Ты их еще и обрабатываешь разными функциями
Domka
В чем прикол та...
Domka
Один создает, другой стреляет ._.