def __init__(self, in_size, out_size, pool_size,
wscale=1, initialW=None, initial_bias=0):
linear_out_size = out_size * pool_size
if initialW is not None:
initialW = initialW.reshape(linear_out_size, in_size)
if initial_bias is not None:
if numpy.isscalar(initial_bias):
initial_bias = numpy.full(
(linear_out_size,), initial_bias, dtype=numpy.float32)
elif isinstance(initial_bias, (numpy.ndarray, cuda.ndarray)):
initial_bias = initial_bias.reshape(linear_out_size)
else:
raise ValueError(
'initial bias must be float, ndarray, or None')
super(Maxout, self).__init__(
linear=linear.Linear(
in_size, linear_out_size, wscale,
nobias=initial_bias is None, initialW=initialW,
initial_bias=initial_bias))
self.out_size = out_size
self.pool_size = pool_size
评论列表
文章目录