Как проверить номер параметра моей модели цепи? Это что-то похожее на model.count_params()
в Keras
.
Как проверить номер параметров модели в цепочке
Ответы (1)
Если вы хотите увидеть значения в параметрах, вы можете использовать это
# model.params gives you a generator object which you could iterate and see
for i in model.params():
print(i)
Если вы хотите увидеть названия слоев и фигур, вы можете использовать это
for i in model.links():
print(i)
Если вы не инициализировали входные данные, вы можете проверить только смещения, основанные на единице измерения. вот так
total = 0
for idx, i in enumerate(model.params()):
if idx%2 != 0: # Skipping the weights and looking at biases
total += len(i)
print(total)
Если вы определили свои входные данные, веса не будут None
, и вы также можете вычислить их значения с небольшими изменениями, подобными этому
total = 0
for idx, i in enumerate(model.params()):
if idx%2 != 0:
total += len(i)
else:
total += len(i)*len(i[0]) # len inputs * len units
print(total)
'''
Now for different models, there are different methods so we can use try-except to make it better but be careful as the results might be wrong in some cases. usually, they will be correct. There might be cases when you have nested layers in the model and you have to check recursively.
'''
total = 0
for idx, i in enumerate(model.params()):
try:
try:
total += len(i)
except:
total += len(i)*len(i[0])
except:
pass
Привет! Спасибо за ответ на мой вопрос. Этот код позволяет мне проверить значение каждого параметра. Но я хочу проверить общее количество параметров, а не значение параметров. Есть ли решение?
Я загружаю предварительно обученную модель, затем сразу же использую четвертый код. Но я получил следующую ошибку: TypeError: len() объекта unsized Я обнаружил, что len(i[0]) вызвало эту ошибку. Есть какое-то решение или я что-то не так делаю?
@EricHong просто проверьте свою модель, используя первый набор кода в моем ответе для вашей модели, после чего вы узнаете, какой объект вы можете использовать len
. Если вы хотите получить полный ответ, вы должны опубликовать свою модель.
Здравствуйте, я печатаю i[0] своей модели по первому набору кода и получаю переменную. Я не уверен, почему len([0])
не работает. И я не уверен, что вы имеете в виду, что я должен опубликовать свою модель. Еще раз спасибо за ответ.
@EricHong Я имею в виду опубликовать свой модельный класс. Код вашей модели.
Модель немного великовата. Вы имеете в виду напрямую опубликовать весь код?
Да. или вы можете поделиться ссылкой на Github. Все работает.
Я использую модель на github.com/hitachi-speech/EEND/blob/master/eend/chainer_backend/… строка 409~513
@EricHong Я имею в виду ваш код, в котором вы определяете модель.
Ой, извини. Вот мой код: gist.github.com/erichong0318/bdb2b69adb9034aa4d503796f4f4a4ce
Я уже слышу, как некоторые люди кричат на меня, но все же. Просто используйте try
и except
. Я отредактировал код.
Привет Эрик, добро пожаловать в SO! Возможно, вам будет полезно включить результаты ваших собственных исследований. Для получения дополнительной информации: coderhelper.com/help/how-to-ask