Size: a a a

Язык программирования Julia / Julia programming language

2019 February 20

DP

Dmitry Penzar in Язык программирования Julia / Julia programming language
Кидали же предложение курсов, где на неделю на 10 людях согласившихся можно бюджет гранта неплохого поднять
источник
2019 February 23

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Опять off-topic:
почему-то в сети много всяких курсов по нейросетям, и почти везде в них встречаются 10-этажные жуткие индексы при объяснении backpropagation. При этом в недавной русской книжке Николенко по глубокому обучению написано буквально на пару страниц о дифференцировании на графе вычислений, абсолютно интуитивная вещь, просто переиначенный "chain rule". Мне непонятно, backpropagation и дифференцирование на графе — это одно и то же или всё-таки нет? Если да, то зачем это объясняют так жутко?
источник

A

Andrey in Язык программирования Julia / Julia programming language
одно и то же
источник

GC

Great Cheese Wall in Язык программирования Julia / Julia programming language
Why Does Julia Work So Well? (Score: 101+ in 5 hours)

Link: https://readhacker.news/s/3XwVi
Comments: https://readhacker.news/c/3XwVi
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Вроде же 2^(-5) сейчас не даёт ошибку?
источник

SV

Sergey Volkov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
Вроде же 2^(-5) сейчас не даёт ошибку?
Не, не выдаёт
источник

GC

Great Cheese Wall in Язык программирования Julia / Julia programming language
О термукс
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Тогда после всей этой статьи вопрос — а почему не выдает ))
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Я смотрю исходный код, но у меня что-то нет идей
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Вызывается это:

^(x::T, p::T) where {T<:Integer} = power_by_squaring(x,p)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
при этом power_by_squaring(2, -5) кидает ошибку
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Охренеть ))

x = -5
2^x # кидает исключение
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Какой-то хак они придумали, чтобы для literal выражений всё хорошо считалось
Т.е. 2^(-2) ещё в момент парсинга на что-то другое заменяется
источник

V

Vladimir in Язык программирования Julia / Julia programming language
2.0^x работает, или надо именно  Int в степень возводить?
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Да, у меня просто вопрос был: как такое возможно, что возведение в степень является type-stable, но при этом 2^(-2) возвращает очевидно не Int )
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Ну... наверно  type-stable оно только для целочисленных степеней > 0 ...
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Если бы там внутри функции было бы что-то типа

if p > 0
< ... >
else
< ... >

то она бы работала долго, т.к. была бы не type-stable: на одних и тех же типах аргумента (Integer) выдавала бы то Float, то Int. Раньше при попытке возвести в отрицательную степень целое число просто кидали исключение, а потом внезапно всё стало работать, и для меня сейчас это оказалось загадкой, как это было достигнуто.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Ответ я уже написал: они на этапе синтаксического разбора по особому обрабатывают литеральные выражения типа 2^(-5), сразу их заменяя на Float. Если попробовать

x = -5
2^x

то всё "сломается" )
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Ну... если так... то при синтаксическом разборе верятно выполняется проверка: если степень < 0, то преобразуется во Float, а переменную  шлет в функцию power_by_squaring и  при проверке бросает Exception
источник

V

Vladimir in Язык программирования Julia / Julia programming language
Строка 252 файла intfuncs.jl
источник