Вот это место с инициализацие bias-ов странное. Во-первых, если вы их оптимизируете, то можно инициализировать нулями. Во-вторых, если вы хотите инициализировать их средними, то надо по очереди это делать, в вашем же решении будут получаться несколько завышенные оценки.
Впрочем, на финальное качество это не должно влиять