Как модуль / оптимизатор выбирает символы для оптимизации?

Я понимаю, что могу сделать свой собственный модуль/оптимизатор, чтобы сделать это, но могут ли существующие модули mxnet сказать, чтобы оптимизировать только подмножество переменных?

По этим же линиям, как модуль определяет, какие символы оптимизировать, как это? Например, в отличие от tensorflow в MXNet, и данные, и переменные, которые будут оптимизированы, являются просто «переменными» символами, но каким-то образом MXNet влияет только на NDArrays для фактических переменных, а не на ndarrays данных. Как это проверить? Существует ли соглашение об именах, которое оно использует? Если да, то что это за соглашение? (Любой символ с именем, содержащим «данные» в нем не оптимизирован?)

1 ответ

  1. Хотя я не проверял его, глядя на документ и источник, я думаю, что у меня есть ответ.

    В конструкторе модуля существует аргумент по умолчанию с именемdata_names, представляющий собой список строк для имен символов, которые являются объектами данных и не подлежат оптимизации (аналогично для меток). Кроме того, существует также аргумент по умолчанию с именемfixed_param_names, который является списком строк, указывающих черный список переменных, которые не должны быть оптимизированы.