Отображение веса / смещения нейролабов для каждого узла?
Есть ли простой способ показать смещение или вес для каждого свойства, которое я добавляю в 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']