Недавно появилась минималистичная (без внешних зависимостей - нужен только компилятор C++) библиотека для глубокого обучения под названием tiny-dnn (хабр). А две недели назад для нее сделали и R-пакет tinydnn. Ставится пакет очень просто: devtools::install_github("yixuan/tinydnn"); перед этим нужно установить RTools, причем путь к папке должен быть без пробелов.
По своим возможностям сильно уступает mxnet, но для изучения темы библиотека крайне полезная и годная. Сделал пример сверточной сетки: взял за основу этот пример, прочитал краткую справку ?layers - и с первой попытки все заработало. Изумительная простота, впервые такое вижу. Скорость работы с mxnet или чем-нибудь еще специально не сравнивал, но на первый взгляд она вполне типичная для расчетов без использования GPU.
net <- net_seq()
net %<%
fc(ncol(train_x),
ncol(train_x),
act = "identity") %<%
conv(in_width = 28,
in_height = 28,
window_width = 5,
window_height = 5,
in_channels = 1, # set to 1 for grayscale images
out_channels = 20, # number of filters
act = "tan_h") %<%
max_pool(in_width = 24, # smaller images after convolution
in_height = 24,
in_channels = 20, # number of filters in conv
pool_size_x = 2,
pool_size_y = 2,
stride_x = 2,
stride_y = 2,
activation = "identity") %<%
conv(in_width = 12,
in_height = 12,
window_width = 5,
window_height = 5,
in_channels = 20,
out_channels = 50,
act = "tan_h") %<%
max_pool(in_width = 8,
in_height = 8,
in_channels = 50,
pool_size_x = 2,
pool_size_y = 2,
stride_x = 2,
stride_y = 2,
activation = "identity") %<%
fc(800, 500, act = "tan_h") %<%
fc(500, nlevels(train_y), act = "softmax")
Комментариев нет:
Отправить комментарий