如何在pnnx中实现logsoftmax和logsigmoid的转换到ncnn

如何在pnnx中实现logsoftmax和logsigmoid的转换到ncnn

首先,我们需要明确的是,PNNX 是一个用于生成 NCNN 模型的转换器,这种转换器可以将 PyTorch、ONNX、TensorFlow、TFLite 和 PaddlePaddle 的模型转换为 NCNN 模型。然而,到 2021 年 9 月为止,我所掌握的信息显示,PNNX 还没有官方的完整的文档和教程来说明如何实现特定操作的转换,如 logsoftmax 和 logsigmoid。

通常情况下,当你使用 PNNX 转换模型时,PNNX 会尝试自动地将源模型中的所有操作转换为 NCNN 中对应的操作。如果源模型中有 PNNX 不支持的操作,你可能需要修改源模型,或者自己实现这个操作的 NCNN 版本。

对于 logsoftmax 和 logsigmoid 操作,你需要确认一下 NCNN 是否支持这两个操作。如果 NCNN 支持这两个操作,那么 PNNX 应该可以自动地将这两个操作转换为 NCNN 中的对应操作。如果 NCNN 不支持这两个操作,那么你可能需要自己实现这两个操作的 NCNN 版本。

如果你想自己实现这两个操作的 NCNN 版本,你可以参考 NCNN 的官方文档和示例代码,了解如何添加新的操作。添加新的操作可能需要编写 C++ 代码,并且可能需要对 NCNN 和 PNNX 的内部工作方式有一定的了解。