about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/netlab3.3/glmunpak.m
diff options
context:
space:
mode:
Diffstat (limited to 'sourcecodes/bnt-master/netlab3.3/glmunpak.m')
-rw-r--r--sourcecodes/bnt-master/netlab3.3/glmunpak.m30
1 files changed, 30 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/netlab3.3/glmunpak.m b/sourcecodes/bnt-master/netlab3.3/glmunpak.m
new file mode 100644
index 00000000..478ef657
--- /dev/null
+++ b/sourcecodes/bnt-master/netlab3.3/glmunpak.m
@@ -0,0 +1,30 @@
+function net = glmunpak(net, w)
+%GLMUNPAK Separates weights vector into weight and bias matrices. 
+%
+%	Description
+%	NET = GLMUNPAK(NET, W) takes a glm network data structure NET and  a
+%	weight vector W, and returns a network data structure identical to
+%	the input network, except that the first-layer weight matrix W1 and
+%	the first-layer bias vector B1 have been set to the corresponding
+%	elements of W.
+%
+%	See also
+%	GLM, GLMPAK, GLMFWD, GLMERR, GLMGRAD
+%
+
+%	Copyright (c) Ian T Nabney (1996-2001)
+
+% Check arguments for consistency
+errstring = consist(net, 'glm');
+if ~errstring
+  error(errstring);
+end
+
+if net.nwts ~= length(w)
+  error('Invalid weight vector length')
+end
+
+nin = net.nin;
+nout = net.nout;
+net.w1 = reshape(w(1:nin*nout), nin, nout);
+net.b1 = reshape(w(nin*nout + 1: (nin + 1)*nout), 1, nout);