У меня есть файл .t7, в котором сохранены сетевая архитектура и предварительно обученные веса.Поскольку модель была обучена на Lua и требовала nn и cudnn (которую я не могу установить, потому что у меня нет графических процессоров NVIDIA), я пытаюсь все конвертировать в Keras / TensorFlow.
После прочтенияу меня есть файл torchfile.TorchObject, который в моем случае представляет собой объект типа nn.Sequential torch, а все слои - nn.layer или cudnn.layer.
Предполагается, что я загрузил файл .t7 впеременная с именем readFile: readFile. dir () возвращает
[b'_type', b'output', b'gradInput', b'modules', b'train', 'torch_typename']
(b должен быть из пакета torchfile, он ни на что не влияет.)
readFiles.modules - это список TorchObjects, и у каждого есть некоторые атрибуты, такие как:
[b'padW',
b'pad',
b'nInputPlane',
b'output',
b'gradInput',
b'iSize',
b'fgradInput',
b'_type',
b'gradBias',
b'bias',
b'output_slice',
b'stride',
b'benchmarked',
b'dH',
b'dW',
b'output_offset',
b'padH',
b'kH',
b'weight_offset',
b'finput',
b'input_slice',
b'input_offset',
b'weight',
b'train',
b'gradWeight',
b'groups',
b'kW',
b'nOutputPlane',
b'autotunerHash',
'torch_typename']
torch.load () у меня не работает, поэтому из пакета torchfile я использовал torchfile.load (), которыйчитает файл .t7 в объект TorchObject, который я могу запросить печать в блокноте Python.
print(readFile.torch_typename())
for node in step1.modules:
print(" "+str(node.torch_typename()))
if(type(node.modules) == list):
for node2 in node.modules:
print(" "+str(node2.torch_typename()))
if(type(node2.modules) == list):
for node3 in node2.modules:
print(" "+str(node3.torch_typename()))
Структура напечатанной сети: (некоторые слои пропущены с '...')
b'nn.Sequential'
b'cudnn.SpatialConvolution'
b'cudnn.SpatialBatchNormalization'
b'cudnn.ReLU'
b'cudnn.SpatialMaxPooling'
b'nn.Sequential'
b'nn.Sequential'
b'nn.ConcatTable'
b'nn.CAddTable'
b'cudnn.ReLU'
...
b'cudnn.SpatialFullConvolution'
b'cudnn.SpatialBatchNormalization'
b'cudnn.ReLU'
...
Как я могу кормить все предварительно обученные веса (как Numpyмассивов) в слои TensorFlow / Keras, со всеми этими спецификациями атрибутов?Как я могу воссоздать ту же структуру?