سلام
لایه softmax به لایه آخر میگن که خروجی لایه قبل رو میگیره و تبدیلش می کنه به یه توزیح احتمال روی کلاسها
مثلا توی imageNet که لایه آخر 1000 تا نورون داره، هر نورونی یه خروجی میده، این خروجی می تونه هرچیزی باشه، بعدش تابع softmax روش این خروجی ها اعمال میشه تا اعداد برن بین 0 و 1 و جمعشون هم یک بشه (همون توزیع احتمال رو کلاسها بدست بیاد)
توی تست و ترین هم فرقی نداره
اما توی train وقتی می خوان که خطای شبکه رو بدست بیارن، باید loss تعریف شه، حالا این loss بسته به مساله متفاوته، برای softmax ما معمولا cross entropy استفاده می کنیم که بهش softmaxloss هم بعضی وقتا گفته میشه که البته اینجا چند تا مشکل نامگذاری هم هست
مثلا بعضی کتابخونه ها(مطمئن نیستم اما شاید mxnet اینطوری بود) ممکنه به کل لایه softmax و خطای cross entropy بگن softmaxloss یعنی هم لایه softmax رو تعریف می کنه و هم loss رو. که توی ترین قسمت loss رو هم استفاده می کنه اما توی تست فقط خروجی softmax مهمه