Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.
Рубрика «scala» - 16
Deep Learning: Сравнение фреймворков для символьного глубокого обучения
2016-10-25 в 7:10, admin, рубрики: android, AWS, c++, caffe, deep learning, framework, iOS, javascript, Julia, machine learning, Matlab, microsoft, mxnet, OS X, python, R, scala, TensorFlow, theano, Ubuntu, windows, Алгоритмы, Блог компании Microsoft, глубокое обучение, машинное обучение, нейронные сети, рекуррентная нейронная сеть, рекуррентная нейросеть, свёрточная нейросеть, фрейморкDependency Injection с проверкой корректности на Scala средствами языка
2016-10-03 в 10:05, admin, рубрики: dependency injection, dsl, scalaХочу рассказать про свою небольшую библиотеку Dependency Injection на Scala. Проблема которую хотелось решить: возможность протестировать граф зависимостей до их реального конструирования и падать как можно раньше если что-то пошло не так, а также видеть в чем именно ошибка. Это именно то, чего не хватает в замечательной DI-библиотеке Scaldi. При этом хотелось сохранить внешнюю прозрачность синтаксиса и максимально обойтись средствами языка, а не усложнять и влезать в макросы.
Также хочу сразу обратить внимание что я концентрируюсь на DI через конструктор, как на самом простом и идиоматичном способе, не требующем изменений в реализацию классов.
Scala или не Scala? Вот в чем вопрос
2016-09-13 в 14:44, admin, рубрики: java, joker, kotlin, scala, scala vs java, Блог компании JUG.ru Group, тренинг, функциональное программирование, метки: scala vs javaДискуссия вокруг Scala не стихает уже много лет, разворачиваясь в основном на поле противостояния с Java. Действительно, несмотря на общую платформу, языки разные.
Аргументы за Scala известны:
1. Scala лаконичная;
2. Scala функциональная;
3. Scala крутая и современная;
В ответ на то, что Scala медленно загибается, Мартин Одерски заявил следующее: «В 2015-м было затишье, но вот в 2016-м развитие Scala должно ускориться».
В этом посте я не буду глубоко погружаться в техническую дискуссию, есть множество специалистов, которые сделают это лучше меня. Сегодня мы поговорим о том, нужна ли Scala разработчику для саморазвития, для этого хочу предложить вам перевод статьи Matthew Casperson.
Ну и в конце дам пару ссылок на популярные статьи по теме за последние несколько лет, если вдруг вы какие-то из них пропустили.
Читать полностью »
Твоя Data такая большая: Введение в Spark на Java
2016-09-12 в 12:21, admin, рубрики: big data, BigData, frameworks, java, java vs scala, joker, scala, spark, Блог компании JUG.ru GroupApache Spark – универсальный инструмент для процессинга больших данных, с которым можно писать в Hadoop с различных СУБД, стримить всякие источники в реальном времени, параллельно делать с данными какую-нибудь сложную обработку, и все это не при помощи каких-то батчей, скриптов и SQL-запросов, а при помощи функционального подхода.
Про Spark ходит несколько мифов:
- Spark’y нужен Hadoop: не нужен!
- Spark’у нужна Scala: не обязательно!
Почему? Смотрите под катом.
Читать полностью »
Аналитическое вычисление производной функции на языке Scala
2016-09-10 в 21:43, admin, рубрики: scala, алгоритм, дифференцирование, математика, производнаяВведение
Данный алгоритм реализован на языке Scala, характерной особенностью которого является использование case-классов, так удачно подходящих для написания алгоритма дифференцирования.
В этой статье планируется описать лишь часть программы, содержащей алгоритм нахождения производной, поскольку разработка парсера для математических выражений это другая большая тема,
заслуживающая отдельной статьи
Подготовка
Сначала опишем структуру данных, в которой будет храниться исходная математическая функция. Опишем трейт MathAST:
sealed trait MathAST
И его наследников:
Читать полностью »
Scala vs Kotlin (перевод)
2016-08-26 в 8:10, admin, рубрики: java, kotlin, scala, перевод, ПрограммированиеНаша команда, аналогично с автором статьи, уже почти как год перешла со Scala на Kotlin в качестве основного языка. Мое мнение во многом совпадает с автором, поэтому предлагаю вам перевод его интересной статьи.
Прошло прилично времени с того момента как я не обновлял блог. Вот уже как год я перешел со Scala, моего основного языка, на Kotlin. Язык позаимствовал много хороших вещей, которые мне нравились в Scala, сумев при этом избежать многих подводных камней и неоднозначности, которая есть в Scala.
Ниже я хочу привести примеры, которые мне нравятся в Scala и Kotlin, а также их сравнение в том, как они реализованы в обоих языках.
Как написать SQL-запрос на Slick и не открыть портал в ад
2016-07-14 в 16:01, admin, рубрики: java, orm, scala, Slick, sql, Блог компании Группа компаний «ЦИТ» (Центр ИТ), монады, функциональное программирование, метки: Slick
Slick — это не только фамилия одной из величайших солисток всех времён, но и название популярного Scala-фреймворка для работы с базами данных. Этот фреймворк исповедует «функционально-реляционный маппинг», реализует реактивные паттерны и обладает официальной поддержкой Lightbend. Однако отзывы разработчиков о нём, прямо скажем, смешанные — многие считают его неоправданно сложным, и это отчасти обоснованно. В этой статье я поделюсь своими впечатлениями о том, на что стоит обратить внимание при его использовании начинающему Scala-разработчику, чтобы в процессе написания запросов случайно не открыть портал в ад.
Читать полностью »
Рефакторинг при помощи композиции Клейсли
2016-07-04 в 10:48, admin, рубрики: scala, scalaz, XML, Блог компании Wix.com, Разработка веб-сайтов, рефакторингВ течение довольно длительного времени мы поддерживали приложение, которое обрабатывает данные в форматах XML и JSON. Обычно поддержка заключается в исправлении дефектов и незначительном расширении функциональности, но иногда она также требует рефакторинга старого кода.
Рассмотрим, например, функцию getByPath
, которая извлекает элемент из XML дерева по его полному пути.
import scala.xml.{Node => XmlNode}
def getByPath(path: List[String], root: XmlNode): Option[XmlNode] =
path match {
case name::names =>
for {
node1 <- root.child.find(_.label == name)
node2 <- getByPath(names, node1)
} yield node2
case _ => Some(root)
}
Эта функция отлично работала, но требования поменялись и теперь нам нужно:
- Извлекать данные из JSON и, возможно, других древоподобных структур, а не только из XML;
- Возвращать сообщение об ошибке, если данные не найдены.
В этой статье мы расскажем, как осуществить рефакторинг функции getByPath
, чтобы она соответствовала новым требованиям.
Читать полностью »
Mobius 2016: мобильная разработка по-новому
2016-06-21 в 7:54, admin, рубрики: android, fresco, google i/o, iOS, java, kotlin, mobius, objective-c, scala, swift, Блог компании JUG.ru Group, мобильная разработка, разработка мобильных приложений, Разработка под android, разработка под iOSВ этом году продажи айфонов впервые перестали расти, мобильный рынок в целом тоже не хвастается прежним бурным ростом, а новые смартфоны и новые версии их ОС уже не поражают воображение. Не означает ли это, что в мобильной разработке настаёт время застоя? Не начнут ли доклады о ней полностью повторять то, что говорили в предыдущие годы на тех же самых конференциях?
Прошедшая в Петербурге конференция Mobius позволила получить ответ и на этот вопрос, и на многие другие. Под катом — подробный рассказ о том, что там было.
Курс молодого бойца для Spark-Scala
2016-06-07 в 13:50, admin, рубрики: big data, data mining, data science, Hadoop, scala, spark, Блог компании Retail Rocket, машинное обучениеКоманда Retail Rocket использует узкоспециализированный стек технологий Hadoop + Spark для вычислительного кластера, о котором мы уже писали обзорный материал в самом первом посте нашего инженерного блога на Хабре.
Готовых специалистов для таких технологий найти довольно сложно, особенно, если учесть, что программируем мы исключительно на Scala. Поэтому я стараюсь найти не готовых специалистов, а людей, имеющих минимальный опыт работы, но обладающих большим потенциалом. Мы берем даже людей с частичной занятостью, чтобы было удобно совмещать учебу и работу, если кандидат — студент последних курсов.