В общем через боль, страдания, подбор параметров и еще танцев с бубном проблема решена. Надеюсь кому-то поможет эта информация.
Почему-то по умолчанию в DIGITS ( использовал docker nvidia-digits-rc-6.0) в слое типа BatchNorm ( а может быть и в других слоях ) используется CUDNN engine в противовес CAFFE engine, если этого не задавать явно. Мужики пишут по этому поводу вот что:
Теперь Caffe BN слой для использования его в DIGITS выглядит вот так:
layer {
name: "G9_d2_bn"
type: "BatchNorm"
bottom: "G9_d1_conv"
top: "G9_d2_bn"
param { #scale
lr_mult: 1
decay_mult: 1
}
param { #shift/bias
lr_mult: 1
decay_mult: 1
}
param { #global mean
lr_mult: 0
decay_mult: 0
}
param { #global var
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
scale_filler {
type: "constant"
value: 1
}
bias_filler {
type: "constant"
value: 0
}
engine: CUDNN
use_global_stats: false
}
}
Интересно, что при использовании CUDNN engine память gpu отжирается вот так:
Если установить CAFFE engine:
За одинаковое время обучения сеть с использованием CUDNN engine заврешила 15 эпох. С использованием CAFFE engine 7 эпох.