Добрый день, я продолжаю свои изыскания в TensorFlow Java API и делаю примеры на Kotlin (и Java) для тренировки все более сложных сетей (в черновике у меня лежат VGG разных версий и AlexNet, но там надо много чистить код).
Моя цель - демократизация знания и построение учебного материала для быстрого начала работы с TensorFlow (для инференса или тренинга, не так важно) на JVM, так как это довольно нетривиальная вещь, осложненная полностью отсутствующей документацией по этой теме (я сам для себя открыл операторы разгона градиентов случайно, лазая по исходникам).
А сегодня я представляю вашему вниманию классику CNN - LeNet-5 (с небольшими улучшениями для ускорения сходимости).
https://medium.com/@zaleslaw/lenet-5-in-kotlin-with-tensorflow-b84a8ce7b6a7В статье я постарался поподробнее показать как строить вычислительный граф, инициализировать веса, считать размеры тензоров, а также дал легкое введение в CNN местами.
Поддержите отечественного производителя - нахлопайте на medium и поставьте звездочку репозиторию (если код показался интересным и полезным)
https://github.com/zaleslaw/KotlinDeepLearningTutorial/blob/master/src/main/kotlin/tensorflow/training/mnist/lenet/LeNetMnistWithoutRefactoring.kt https://github.com/zaleslaw/KotlinDeepLearningTutorial/blob/master/src/main/java/tensorflow/LeNetMnistJava.java