def set_dropout(self):
n_nodes = self.n_nodes
dropout=np.random.binomial([np.ones(sum(n_nodes))],
self.DORATE)[0].astype(np.bool)
dropout[0:n_nodes[0]]=False # no dropout units in first layer
dropout[-n_nodes[-1]:]=False # no dropout units in last layer
self.dropout = dropout
# ths_d ???
self.ths_d = np.zeros(len(self.ths)).astype(np.bool)
for l in range(len(self.ths_l)):
if (l<len(self.ths_l)-1):
# input node? dropout ? ??
for i in np.flatnonzero(self.__get_dropout(l)):
self.ths_d[self.ths_l[l]+\
# ??? +1? bias ?? ??
np.arange(n_nodes[l+1])*(n_nodes[l]+1)+(i+1)] = True
# output node? dropout ? ??
for i in np.flatnonzero(self.__get_dropout(l+1)):
self.ths_d[self.ths_l[l]+i*(n_nodes[l]+1):\
self.ths_l[l]+(i+1)*(n_nodes[l]+1)] = True
评论列表
文章目录