This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 在 TIDL 模型导入方面有疑问、是否有任何方法可以在不同模型之间共享参数?

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/647155/question-on-tidl-model-import-is-there-any-way-to-share-parameters-between-different-models

您好!

我使用 TIDL 来运行咖啡因模型。 我有两个 prototxt 文件、大多数参数共享、最后几层上只有不同的参数、例如:

咖啡因子:中间层1 +中间层2 +中间层3
原型 A:图层1 +图层2
原型 B:图层1 +图层3

在 Caffe 中、原型将通过其名称从咖啡因模型加载参数、但在 TIDL 上、我注意到它会根据层顺序加载参数。 TIDL 将 Caffemodel 和 prototxt 文件转换为网络文件和参数文件。 如果我使用 prototxt A 创建参数文件、它只包含 layer1和 layer2的参数、如果我使用网络文件 B 加载参数文件、它可以运行、但它只加载 layer1和2的参数、而不加载 layer1和3的参数。 如果我要运行两个模型、我必须创建两个参数文件、这会导致内存浪费。

我们的临时解决方案是使用三层不同的连接创建原型 A 和 B、因此未使用原型 A 上的第3层和原型 B 上的第2层。 但这意味着我们在计算这些层时浪费了一些 MAC。 是否有更好的解决方案? 是否可以创建一个伪图层来加载参数而不实际执行任何操作?

最好

浩源

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hao - Yuan、

    在 TIDL 中、每个网络(prototxt)都单独部署。 因此、我们无法在网络之间共享参数。  

    解决方案可以是定义一个包含全部3层的原型设计、并使第2层和第3层都成为输出层。 目前、如果网络中的任何层都不使用某个层的输出、则该层将连接到输出数据层。 我们还可以将第2层连接到输出数据层(在导入工具中或在库调用之前进行少量更改)。 在本例中、我们将从一个网络获得第2层和第3层。

    谢谢、此致、

    Kumar.D