RNN.py 文件源码

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

项目:007 作者: wabyking 项目源码 文件源码
def __init__(self, itm_cnt, usr_cnt, dim_hidden, n_time_step, learning_rate, grad_clip, emb_dim, lamda=0.2, initdelta=0.05,MF_paras=None,model_type="rnn",use_sparse_tensor=False):
        """
        Args:
            dim_itm_embed: (optional) Dimension of item embedding.
            dim_usr_embed: (optional) Dimension of user embedding.
            dim_hidden: (optional) Dimension of all hidden state.
            n_time_step: (optional) Time step size of LSTM. 
            usr_cnt: (optional) The size of all users.
            itm_cnt: (optional) The size of all items.
        """
        self.V_M = itm_cnt
        self.V_U = usr_cnt
        self.param=MF_paras
        self.H = dim_hidden
        self.T = n_time_step

        self.MF_paras=MF_paras
        self.grad_clip = grad_clip

        self.weight_initializer = tf.contrib.layers.xavier_initializer()
        self.const_initializer = tf.constant_initializer(0.0)
        self.emb_initializer = tf.random_uniform_initializer(minval=-1.0, maxval=1.0)

        # Place holder for features and captions

        if use_sparse_tensor:
            self.item_sequence = tf.placeholder(tf.float32, [None, self.T, self.V_U])        
            self.user_sequence = tf.placeholder(tf.float32, [None, self.T, self.V_M])

            self.user_indices = tf.placeholder(tf.int64)
            self.user_shape = tf.placeholder(tf.int64)
            self.user_values = tf.placeholder(tf.float64)
            user_sparse_tensor = tf.SparseTensor(user_indices, user_shape, user_values)
            self.user_sequence = tf.sparse_tensor_to_dense(user_sparse_tensor)

            self.item_indices = tf.placeholder(tf.int64)
            self.item_shape = tf.placeholder(tf.int64)
            self.item_values = tf.placeholder(tf.float64)
            item_sparse_tensor = tf.SparseTensor(item_indices, item_shape, item_values)
            self.item_sequence = tf.sparse_tensor_to_dense(item_sparse_tensor)

        else:
            self.item_sequence = tf.placeholder(tf.float32, [None, self.T, self.V_U])        
            self.user_sequence = tf.placeholder(tf.float32, [None, self.T, self.V_M])   

        self.rating = tf.placeholder(tf.float32, [None,])

        self.learning_rate = learning_rate


        self.emb_dim = emb_dim
        self.lamda = lamda  # regularization parameters
        self.initdelta = initdelta

        self.u = tf.placeholder(tf.int32)
        self.i = tf.placeholder(tf.int32)

        self.paras_rnn=[]
        self.model_type=model_type
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号