Я знаю, что на вопрос дан ответ, но обновление вопроса стерло проблему, на которую указывал автор, поэтому я все равно напишу свой ответ для людей, которые придут дальше.
Как и OP, я создаю слой (который будет плотным):
>>> l = Dense(20,activation='softmax',name='a')
>>> l.name
a
если я запускаю этот код в той же консоли, я получаю те же результаты. Однако , когда я запускаю код вопроса:
>>> l = Dense(20,activation='softmax',name='a')(inputs)
>>> l.name
a/Softmax:0
и когда я запускаю код:
>>> l = Dense(20,activation='softmax',name='a')(inputs)
>>> l.name
a_1/Softmax:0
и если я немного изменим:
>>> l = Dense(20,activation='softmax',name='a')(l)
>>> l.name
a_2/Softmax:0
SO Будьте осторожны при создании слоев: вы создаете независимый слой или тензор, полученный в результате исчисления (как указано в принятом ответе)
Вы можете получить имя простым разделением Но только при первом запуске сети. В случае повторного запуска (новый экземпляр) имена изменятся!