remove backprop code
This commit is contained in:
parent
5b98023073
commit
bb44d6696e
1 changed files with 0 additions and 69 deletions
69
nn.lua
69
nn.lua
|
@ -355,10 +355,6 @@ function Layer:forward_deterministic(...)
|
|||
return self:forward(...)
|
||||
end
|
||||
|
||||
function Layer:backward()
|
||||
error("Unimplemented.")
|
||||
end
|
||||
|
||||
function Layer:_new_weights(init)
|
||||
local w = Weights(init)
|
||||
insert(self.weights, w)
|
||||
|
@ -419,11 +415,6 @@ function Input:forward(X)
|
|||
return X
|
||||
end
|
||||
|
||||
function Input:backward(dY)
|
||||
checkshape(dY, self.shape_out)
|
||||
return zeros(#dY)
|
||||
end
|
||||
|
||||
function Merge:init()
|
||||
Layer.init(self, "Merge")
|
||||
self.size = 0
|
||||
|
@ -483,17 +474,6 @@ function Relu:forward(X)
|
|||
return Y
|
||||
end
|
||||
|
||||
function Relu:backward(dY)
|
||||
local bs = checkshape(dY, self.shape_out)
|
||||
local Y = self.cache
|
||||
local dX = self.dcache
|
||||
|
||||
for i = 1, #dY do dX[i] = Y[i] >= 0 and dY[i] or 0 end
|
||||
|
||||
checkshape(dX, self.shape_in)
|
||||
return dX
|
||||
end
|
||||
|
||||
function Gelu:init()
|
||||
Layer.init(self, "Gelu")
|
||||
end
|
||||
|
@ -525,21 +505,6 @@ function Gelu:forward(X)
|
|||
return Y
|
||||
end
|
||||
|
||||
function Gelu:backward(dY)
|
||||
checkshape(dY, self.shape_out)
|
||||
local Y = self.cache
|
||||
local a = self.cache_a
|
||||
local sig = self.cache_sig
|
||||
local dX = self.dcache
|
||||
|
||||
for i = 1, #dY do
|
||||
dX[i] = dY[i] * sig[i] * (1 + a[i] * (1 - sig[i]))
|
||||
end
|
||||
|
||||
checkshape(dX, self.shape_in)
|
||||
return dX
|
||||
end
|
||||
|
||||
function Dense:init(dim)
|
||||
Layer.init(self, "Dense")
|
||||
assert(type(dim) == "number")
|
||||
|
@ -568,11 +533,6 @@ function Dense:forward(X)
|
|||
if self.bs ~= bs then self:reset_cache(bs) end
|
||||
local Y = self.cache
|
||||
|
||||
for i = 1, #X do
|
||||
-- only needed for backwards pass.
|
||||
self.cache_x[i] = X[i]
|
||||
end
|
||||
|
||||
--dot_1aab(X, self.coeffs, Y)
|
||||
dot(X, self.coeffs, 2, 1, Y)
|
||||
|
||||
|
@ -584,26 +544,6 @@ function Dense:forward(X)
|
|||
return Y
|
||||
end
|
||||
|
||||
function Dense:backward(dY)
|
||||
local X = self.cache_x
|
||||
local dX = self.dcache
|
||||
|
||||
--dot_ta(X, dY, self.coeffs.g)
|
||||
dot(X, dY, 1, 1, self.coeffs.g)
|
||||
|
||||
for b = 1, X.shape[1] do
|
||||
local l = X.shape[2]
|
||||
local j = (b - 1) * l
|
||||
for i = 1, l do self.biases.g[i] = self.biases.g[i] + dY[j-1+i] end
|
||||
end
|
||||
|
||||
--dot_tb(dY, self.coeffs, dX)
|
||||
dot(dY, self.coeffs, 2, 2, dX)
|
||||
|
||||
checkshape(dX, self.shape_in)
|
||||
return dX
|
||||
end
|
||||
|
||||
function Softmax:init()
|
||||
Layer.init(self, "Softmax")
|
||||
end
|
||||
|
@ -636,10 +576,6 @@ function Softmax:forward(X)
|
|||
return Y
|
||||
end
|
||||
|
||||
--function Softmax:backward(dY)
|
||||
--return (dY - np.sum(dY * self.sm, axis=-1, keepdims=True)) * self.cache
|
||||
--end
|
||||
|
||||
function Embed:init(vocab, dim)
|
||||
Layer.init(self, "Embed")
|
||||
assert(type(vocab) == "number")
|
||||
|
@ -667,11 +603,6 @@ function Embed:forward(X)
|
|||
if self.bs ~= bs then self:reset_cache(bs) end
|
||||
local Y = self.cache
|
||||
|
||||
for i = 1, #X do
|
||||
-- only needed for backwards pass.
|
||||
self.cache_x[i] = X[i]
|
||||
end
|
||||
|
||||
local yi = 0
|
||||
for i, x in ipairs(X) do
|
||||
local xi = x * self.dim
|
||||
|
|
Loading…
Reference in a new issue