input_encoders_numba.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:LSTM-and-maxlayer-for-SNV-based-phenotype-prediction 作者: widmi 项目源码 文件源码
def encode(self, inp, lengths):
        #input shape: minibatchsize x input_len
        #output shape: minibatchsize x input_len x n_inputnodes
        minibatchsize = inp.shape[0]
        output = np.zeros((minibatchsize, inp.shape[1]+self.ticker_steps, self.n_inputnodes), dtype=float)
        lengths -= (self.ticker_steps - 1)

        for mb in np.arange(minibatchsize):

            scaled_pos = inp[mb,:] / self.node_range
            # equals output[np.arange(len(input)), np.trunc(scaled_pos)+1] except for the last timestep
            output[mb, np.arange(inp.shape[1]), scaled_pos.astype(int)+(scaled_pos.astype(int)<self.data_nodes)] = np.abs(self.max_act * (scaled_pos-np.trunc(scaled_pos)))
            output[mb, np.arange(inp.shape[1]), scaled_pos.astype(int)] = np.abs(self.max_act - output[mb, np.arange(inp.shape[1]), scaled_pos.astype(int)+(scaled_pos.astype(int)<self.data_nodes)])
            output[mb, np.arange(inp.shape[1]), -self.exp-1:-1] = int_to_binary(inp[mb,:] % self.node_range, self.exp)
            if self.ticker_steps > 0:
                output[mb, lengths[mb]:, :] = 0
                output[mb, lengths[mb]:lengths[mb]+self.ticker_steps, -1] = 1

        return output
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号