Pull to refresh
38
0
Александр @M00nL1ght

Lead iOS engineer / Machine learning engineer

Send message
Скомпилировав код

Питон как бы не компилируемый язык =)
По слухам обратную совместимость с PS4 обещают сделать. Как будет на самом деле — посмотрим. По цене — врядли она будет в итоге стоить 1к, думаю на старте ~600 будет. Причем говорят, что, возможно, сразу выпустят две версии, типо про и не очень.

Речь изначально шла о буквально за пару дней до, а то и вообще за вечер до. Плюс три месяца это большой срок что бы успеть подогнать уже работающуб версию под обновление. А все проблемы которые вы описали как раз исходят из неэффективного менеджмента у вас в команде. Вы же утверждаете что не в этом дело. И геймдев тут совсем не причём

Это то все понятно, но повторюсь:
Возьмем пример iOS (в андроиде ситуация аналогичная думаю). Когда анонсируют новую ось (например iOS 13) сразу выкатывают бета версию, все разработчики могут ее поставить и начинать тестить работу своих приложений, с момента появления первой бета версии до офф релиза проходит пол года и более, соответственно у разрабов есть пол года что бы все пофиксить если надо, а не два дня как вы говорите.
Мне кажется, но мажорные версии операционок тех же не выходят неожиданно за два дня до релиза. Обычно о том, что грядет мажорное обновление известно чуть ли не за год до их релиза, ту же iOS бета версию обычно пол года можно тестить и подгонять свои программы под новое обновление. А если, неожиданно, выйдет минорное обновление «которое все ломает» то его уж можно и игнорировать в такой ситуации, все равно разницы на презентации ни кто не заметит.
Так что все грядущие обновления ОС и прочих важных систем, которые могут повлиять на работу тысяч разных приложений, обычно анонсируют сильно заранее, что бы как раз избежать таких вот ситуаций.
iOS 13 ничем в этом плане не отличается от iOS 11, главное не ниже, если пользоваться CoreML. А задача которую вы описали довольно простая, поэтому конечно можно и с помощью iPod её реализовать. Да и вообще с помощью обычного компа, который будет обрабатывать картинки с камеры и играть роль сервера если камер много.
Вообще на данный момент NMS довольно хорошо показывает себя на практике и нет смысла его заменять, в том числе из-за возможных проблем с производительностью. В статье и не было идеи описать теорию сети и процесс её обучения. Насчет количество слоев: при такой архитектуре для достижения оптимального mAP их как раз нормальное количество. Например в той же tiny версии их меньше, что уже сказывается на точности.
Фары как деталь будут распознаваться на более ранних слоях, на слоях повыше все эти фрагменты будут «сводиться» в единый объект и распознаваться сразу целиком.
Уточните пожалуйста и если получится все таки выложите его в открытый доступ, интересно было бы провести нормальные тесты.
Что вы с этой кармой носитесь? Автора ж вполне нормально попросили пример кода для тестов, нормально попросили объяснить как он считает сложность своего алгоритма и тд. И если бы он нормально отвечал то никто «гадить в карму» не стал бы.
как вы думаете в какой точке на кривой Даннинга — Крюгера находится автор? Пик глупости или долина отчаяния?)
Понятия не имею! Виимо, затем, что из вас готовят не программистов, а быдлокодеров. :) Ибо вся эта дурацкая «сложность» для решения практических задач НАФИГ НЕ НУЖНА! Зато можно долго рассуждать про всякие идиотские «пределы Бреммермана», изображая из себя «умных людей».


Это просто 5+. Действительно нафига все это нужно?) формулы там какие то, доказательства пфф. Из серии все вокруг дураки один я умный
вы почитайте историю диалогов с предыдущих его публикаций, там люди вполне нормально задают интересующие их вопросы, а в ответ летит: «быдло, говно и тд».
У автора что синдром туретта в письменном виде?
Да ни кто на одного не накидывается, люди пытаются узнать и разобраться в том, что написано в статье. А когда ты спрашиваешь вполне конкретный вопрос и просишь пояснить ту или иную вещь, или даже обоснованно даешь автору критику с аргументами, а в ответ прилетают лишь фразочки одна лучше другой в стиле гопника из подворотни, то о чем может быть речь? О каком конструктивном диалоге и отстаивании своего мнения?
полные перебор НЕ ЕСТЬ синоним дурацкого brute force!

Открываем вики и видим:
на русском:
Полный перебор — Метод решения математических задач. Относится к классу методов поиска решения исчерпыванием всевозможных вариантов

на английском:
In computer science, brute-force search or exhaustive search, also known as generate and test, is a very general problem-solving technique and algorithmic paradigm that consists of systematically enumerating all possible candidates for the solution and checking whether each candidate satisfies the problem's statement.


exhaustive = исчерпывающий
поиска решения исчерпыванием всевозможных вариантов = consists of systematically enumerating all possible candidates for the solution

Для интереса откроем на французском:

La recherche exhaustive ou recherche par force brute est une méthode algorithmique qui consiste principalement à essayer toutes les solutions possibles.


И что мы видим? Да то же самое только на другом языке.

Этот термин определен и воспринимается всеми однозначно, конечно вы можете поиграться со словами, но от этого «полный перебор» на русском не перестанет переводиться как «brute force» на английском.

что РЕАЛЬНОЕ ФИЗИЧЕСКОЕ время сортировки именно ЛИНЕЙНОЕ!


Вы делаете утверждение, что время сортировки, а это функция, линейно, а линейность произвольной функции (как свойство функции) тоже надо доказать (сюрприз да?), но что бы это доказать надо сначала эту функцию определить. Вопрос раз: как вы определяете эту функцию? Вопрос два: после того как вы ее определили где доказательства, что она линейна (для доказательства можно использовать любой математический прием которые однозначно это докажет)?
И повторюсь еще раз: «РЕАЛЬНОЕ ФИЗИЧЕСКОЕ время» не используется для оценки вычислительной сложности алгоритма, используется условная единица времени.

И да можете не отвечать на те вопросы, что я задал, они риторические, ибо я заранее знаю что не получу на это ответ. Ведь у вас все это пытались узнать многие в комментариях, но ни один из них не получил внятного, грамотного ответа и по существу, без капслока и фразочек для, как вы это называете, «вытравливания головожопых».
Да хоть килограмм! Я и сам писал такие статьи!

В данном вопросе ваши статьи не котируются от слова совсем, ведь:
Там, где никакие «формулы» нафиг не нужны!

Здесь вообще есть ХОТЬ ОДНА научная статья за всё время существования Хабра? Нет? А какого же хрена до меня докопались?

Вы пишете публикацию в которой вы описываете некий алгоритм и утверждаете, что он является лучшим в своем роде. Такое сильное заявление принято доказывать и не словами «очевидно, дебилы, стадо» и тд., а кодом (специально для вас заменил слово псевдокод на код) и/или формулами и в какой то степени его можно считать как научный труд. Поэтому к вам и докопались, люди хотят доказательство на деле, а не на ваших словах. В ином случае вашу статью можно считать псевдонаучной или вообще развлекательной, чем она и является по моему мнению.

Господи, ну какие вы, в задницу, «профессионалы»? Я лично знаком с превеликим множеством высококлассных программистов — одного из них даже как-то признали лучшим программистом мира!

Да у вас мания величия. Вам бы провериться у специалиста. Наполеоном себя не считаете?

Я НИ РАЗУ В ЖИЗНИ не видел, чтобы хоть один из них рисовал эти поганые «блок-схемы»!


Вы просили пример, того как вы манипулируете словами:

Укажите ХОТЬ ОДНО понятие, ХОТЬ ОДИН термин


Вот он! Говорив про псевдокод я не имел ввиду лишь только блок-схемы (их можно использовать тоже кстати почему нет), или вы не знаете, что такое псевдокод? Напишите код на любом удобном для вас языке и предоставьте его для обсуждения. Я хотел донести до вас мысль, что алгоритм можно представить в виде кода (псевдокода, кода на C, кода на ...). Но вы придрались к слову псевдокод и подменили понятия.

Потому как эти «константы» как раз и отжирают львиную долю времени сортировки! И я писал, что РЕАЛЬНОЕ время работы ХУДШЕГО случая отличалось от времени работы ЛУЧШЕГО менее, чем в два раза!


Да будет вам известно алгоритмы тестируются в равных условиях, алгоритм A и алгоритм B должны тестироваться при одинаковых константах, и в таком тесте константа будет отжирать львиную долю времени сортировки и у алгоритма А и у В. Только такой тест является достоверным для определения скорости работы алгоритма. Поэтому еще раз повторюсь: время в данном случае это условное понятие (не секунды, минуты, ...) и такие константы нужно можно сократить. Вы с физикой знакомы? Вы знаете как в физических вычислениях иногда сокращаются единицы измерения? Тут смысл тот же.

Если же вы говорите об уменьшении времени операции чтения например, о том что бы перемещать указатели на данные, а не сами данные и тд. Так это, да будет вам известно, называется оптимизацией кода/железа/… и к вычислительной сложности алгоритма никакого отношения не имеет! Ведь алгоритм:
конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи.
Относится далеко не только к программированию в общем случае, программирование всего лишь средство реализации некоторых задач теории алгоритмов, инструмент если хотите. И алгоритмическая сложность алгоритма к программированию этого алгоритма на языке __ никакого отношения не имеет. Это надо понимать прежде чем пытаться, что то доказывать, вы этого, судя по вашим текстам, не понимаете.

распальцованный быдлокодер, Срули проснулись, гадить в карму, стаду заткнуть мне рот, Вы не пахан в этом стаде, быдло, стадо

У меня тут мысль закралась. Вы случайно не из мест лишения свободы пишете? Жаргон соответсвует. Как вам там интернет удалось провести? Или вы только оттуда вернулись?
Какой, в жопу, «псведокод», если вы даже описание простейшего алгоритма НА РУССКОМ ЯЗЫКЕ проссать не в состоянии?


Не в состоянии конечно, ибо это глупо, вы хоть одну научную статью видели без формул и строго доказательства? А все потому, что все что написано на русском языке (как и на любом другом) можно трактовать по разному, собственно вы так и делаете, играете словами в свою защиту, подменяете понятия и термины в зависимости от ситуации. А с помощью формул или псевдокода можно строго определить алгоритм, без возможности трактовать его по разному. Поэтому, во всем мире для доказательства математических и алгоритмических утверждений используются не русский, английский или китайский язык, а формулы и математические символы.

Или Вы имеете в виду тот кретинизм, когда «реализатор» обозвал МОЕЙ воронкой СВОЁ дерьмо с квадратичной сложностью? Или ещё что-то?


Это все туда же, претензия к вам, а не к тому кто попытался реализовать ваш алгоритм. Человек попытался написать код по тому что вы описали сложносочиненными и сложноподчиненными предложениями, что не так уж и легко иногда сделать, учитывая вашу манеру подачи материала. Но вам не нравится. Так может дело не в нем, а в вас? Вы не можете четко донести свою точку зрения? Напишите псевдокод, что бы таких проблем не было.

ВРЕМЯ, БЛИН! А не все эти вонючие циферки, которые ровным счётом ни о чём не говорят!


Вы путаете теплое с мягким. Да, конечно, время является оценкой работы алгоритма, но время (физическое: в секундах, минутах и тд) это всего лишь следствие, а не причина. Потому что в общем случае операции чтения из файла или операции чтения из кэша процессора например, не учитываются при оценки скорости работы алгоритма. Потому что это константы. Быстродействие алгоритма характеризует только вычислительная сложность и ни что другое, только сложность. А вычислительная сложность — это (из вики):
понятие в информатике и теории алгоритмов, обозначающее функцию зависимости объёма работы, которая выполняется некоторым алгоритмом, от размера входных данных. Раздел, изучающий вычислительную сложность, называется теорией сложности вычислений. Объём работы обычно измеряется абстрактными понятиями времени и пространства, называемыми вычислительными ресурсами.
Время в данном случае условная единица и она одинакова для операции считывания с кэша процессора или если данные придут вам на почтовый ящик и считаются оттуда. На вычислительную сложность алгоритма это ни как не влияет, ни как. Ведь еще раз повторюсь время в оценке быстродействие алгоритма это абстрактность, которая не привязана к устройству.

«O» — нотация общепринятая оценка сложности алгоритма сверху.

Поэтому:

все эти вонючие циферки, которые ровным счётом ни о чём не говорят!


Говорят абсолютно обо всем! И придумано это не на хабре, это придумано учеными и исследователями которые описывают и доказывают свои алгоритмы с помощью формул и псевдокода, а не утверждений типа: «очевидно любому дебилу». И это общепринято во всем мире.
чего то я не понял, а где собственно искусственный интеллект?

интеллект подчиненных

Подчиненных сотрудников или кого?

В последнем случае команды можно отдавать мысленно.

Ого, серьезно?
и я это доказал выше.

поздравляю) удачи вам, обсуждение можно считать закрытым.
Где вы написали на rust программу для «вычисления скалярного произведения векторов»?

Открываем файл main.rs (.rs — означает, что он написан на языке Rust). Коментируем unsafe блок кода. Получаем такой файл:
main.rs
extern crate libc;
extern crate rand;

use libc::{c_float, size_t};
use rand::Rng;

const VEC_SIZE: usize = 10;
const MAX: f32 = 10.;
const MIN: f32 = 0.;


extern "C" {
  fn dot(v1: *mut c_float, v2: *mut c_float, N: size_t) -> c_float;
}

fn cpu_dot(v1: Vec<f32>, v2: Vec<f32>) -> f32 {
  let mut res: f32 = 0.;
  for i in 0..v1.len() {
    res += v1[i] * v2[i];
  }
  return res;
}

fn main() {
  let mut v1: Vec<f32> = Vec::new();
  let mut v2: Vec<f32> = Vec::new();
  let mut gpu_res: c_float;
  let mut cpu_res: f32 = 0.;

  let mut rng = rand::thread_rng();
  for _ in 0..VEC_SIZE {
    v1.push(rng.gen_range(MIN, MAX));
    v2.push(rng.gen_range(MIN, MAX));
  }

  println!("{:?}", v1);
  println!("{:?}", v2);

  println!("GPU computing started");
 // unsafe {
    //gpu_res = dot(v1.as_mut_ptr(), v2.as_mut_ptr(), VEC_SIZE);
//  }
  println!("GPU computing finished");
  println!("GPU dot product result: {}", gpu_res);
  
  cpu_res = cpu_dot(v1, v2);
  println!("CPU dot product result: {}", cpu_res);
}


в нем ищем функцию cpu_dot, которая вычисляет скалярное произведение двух векторов на языке Rust (dot product на английском означает скалярное произведение), формулу скалярного произведения я тоже привел.
Компилируем это и получаем простую программу для вычисления скалярного произведения на Rust.
Я отвечу — нигде.

Уверены? Берете свои слова обратно? Или сейчас вы скажете, что ее я не сам написал?
Я слушаю про внимательность и тому подобное.

Слушайте: читайте пожалуйста внимательно. Не надо придираться к словам.

И может хватит уже? Мне надоело повторять одно и то же, вы меня все равно не хотите слушать.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity