Возможно ли изменить источник входного сигнала слоя ImageData
или слой MemoryData
на лету?Изменение уровня входных данных во время обучения в Caffe
Я пытаюсь перетасовать данные каждую эпоху, но у меня есть изображение и некоторые другие функции без изображения, которые я хочу объединить на более позднем этапе в сети. Я не мог найти надежный способ перетасовать изображение и другие данные таким образом, чтобы сохранить выравнивание двух.
Итак, я имею в виду ре-генерирующего imagelist.txt
, а также nonimage данных (в памяти) каждую эпоху и прикрепить новый файл в ImageData
слой и инициализировать MemoryDataLayer
с новыми данными.
Как я могу убедиться, что я повторно инициализирую сеть новым текстовым файлом без перезапуска учебного процесса. (Я хочу, чтобы сеть продолжала обучение на одном и том же этапе, момент и т. Д., Только начинал читать файлы изображений из нового файла вместо того, который был первоначально скомпилирован).
layer {
name: "imgdata"
type: "ImageData"
top: "imgdata"
top: "dlabel"
transform_param {
# Transform param here
}
image_data_param {
source: "path to imagelist.txt" ## This file changes after n iterartions
batch_size: XX
new_height: XXX
new_width: XXX
}
}
И Кроме того, я хочу, чтобы иметь возможность скопировать данные повторно перемешиваются в MemoryData
слой. Могу ли я позвонить Net.set_input_arrays
во время тренировки?
layers {
name: "data"
type: MEMORY_DATA
top: "data"
top: "label"
memory_data_param {
batch_size: XX
channels: X
height: XXX
width: XXX
}
Вы считаете, что используете PythonLayer? – Shai
Благодарим вас за комментарий. Даже со словом, написанным на python, я не уверен, как я могу выровнять изображения и данные без изображения во время перетасовки. – Prophecies
вы можете делать все внутри слоя Python. все входы из одного слоя – Shai