Отображение веса / смещения нейролабов для каждого узла?

Есть ли простой способ показать смещение или вес для каждого свойства, которое я добавляю в ANN, разработанный с использованием нейролаба, после того, как он уже обучен?

1 ответ

Решение

Да, вы можете увидеть все веса и уклоны слоя. с помощью

net.layers[i].np['w'] для весов

net.layers[i].np['b'] для предубеждений

Чтобы изменить их вручную, вам просто нужно использовать [:] добавлен в конец и установить их в массиве.

Вот пример тестового кода, который я использовал в простой сети с 3 слоями (1 входной слой, 1 скрытый слой и 1 выходной слой).

import neurolab as nl
import numpy as np

net = nl.net.newff([[0,1]] * 3, [4,2])

net.save("test.net")

net = nl.load("test.net")
# show layer weights and biases
for i in range(0,len(net.layers)):
    print "Net layer", i
    print net.layers[i].np['w']
    print "Net bias", i
    print net.layers[i].np['b']

#try setting layer weights
net.layers[0].np['w'][:] = np.array ([[0,1,2],  
                                     [3,4,5],  
                                     [4,5,6],  
                                     [6,7,8]]
                                     )


# show layer weights and biases 
for i in range(0,len(net.layers)):
    print "Net layer", i
    print net.layers[i].np['w']
    print "Net bias", i
    print net.layers[i].np['b']
Другие вопросы по тегам