pytorch2keras
pytorch2keras copied to clipboard
Trouble importing Roberta
Feature request I'm having trouble exporting the Roberta model from the fairseq library to Tensorflow. Below is some example code of how I am currently loading Roberta and my initial attempt to convert it to keras.
from fairseq.models.roberta import RobertaModel as FairseqRobertaModel
roberta = FairseqRobertaModel.from_pretrained(roberta_checkpoint_path, 'checkpoint_best.pt', data_dir)
from torch.autograd import Variable
from pytorch2keras import pytorch_to_keras
input_np = np.random.uniform(0, 29, (1, 1024))
input_np.astype(np.int64)
input_var = Variable(torch.LongTensor(input_np.astype(np.int64)))
k_model = pytorch_to_keras(roberta.model, input_var, [(1, 1024,)], verbose=True)
I had to hack Roberta to only return tensors (the forward function also returned dictionaries).
Once that was done, some of the nodes couldn't convert, namely those with the Equal
operator.
Specifically, I get the following error
Traceback (most recent call last):
File "convert_roberta_original_pytorch_checkpoint_to_pytorch.py", line 62, in <module>
k_model = pytorch_to_keras(roberta.model, input_var, [(1, 1024,)], verbose=True)
File "/mnt/home/jmorton/miniconda3/envs/pytorch2keras/lib/python3.7/site-packages/pytorch2keras/converter.py", line 73, in pytorch_to_keras
verbose=verbose, change_ordering=change_ordering)
File "/mnt/home/jmorton/miniconda3/envs/pytorch2keras/lib/python3.7/site-packages/onnx2keras/converter.py", line 173, in onnx_to_keras
AVAILABLE_CONVERTERS[node_type](
KeyError: 'Equal'
Additional context
Just so that this message is clear, this is not a problem with pytorch2kera, rather the above KeyError is thrown due to a missing feature in onnx2keras. Specifically, the Equal
converter has not yet been implemented here: https://github.com/nerox8664/onnx2keras/blob/master/onnx2keras/layers.py#L18
did you find a solution?