Paddle fluid 支持稀疏输入吗

jfgube3f  于 2021-11-29  发布在  Java
关注(0)|答案(7)|浏览(240)
  • 版本、环境信息:

   1)PaddlePaddle版本:1.4.1
   2)CPU/GPU:CPU
   3)系统环境:Centos
   4)Python版本号:2.7

  • 问题

fluid1.4.1支持稀疏输入以及fc的稀疏更新吗,v2版本里面是支持的类似于下面这个代码。

self.x = layer.data( name='x', type=dtype.sparse_binary_vector(self.input_dim))

self.y = layer.fc(name='y', input=self.x, size=1,act=paddle.activation.Sigmoid(),param_attr=ParamAttr(name='w', sparse_update=True,)
628mspwn

628mspwn1#

支持的,可以参考:https://www.paddlepaddle.org.cn/documentation/docs/zh/1.5/api_cn/layers_cn/io_cn.html#data

将type设置为:VarType.SELECTED_ROWS

稍后给你贴个例子。

qpgpyjmq

qpgpyjmq3#

好的,谢谢,我就是想用稀疏输入的方式实现一个LR模型,输入是大量的离散型特征(如id、tags这些)

idfiyjo8

idfiyjo85#

看了一下是用embedding的权重来作为LR模型W是吧,请问下面这样等价于LR吗?

first_embeddings = fluid.layers.embedding(
            input=input, dtype='float32', size=[emb_dict_size, 2], is_sparse=True)
        first_order = fluid.layers.sequence_pool(input=first_embeddings, pool_type='sum')
        first_order = fluid.layers.reshape(first_order, (-1, 1, 2))
        fc = layers.softmax(first_order)
        loss = layers.cross_entropy(input=fc, label=label)
x8diyxa7

x8diyxa76#

embedding的权重不是LR的Weight, 你这段代码不等价于lr

fkaflof6

fkaflof67#

好吧,那有没有对应下面这个代码的fluid实现LR的例子呢?输入特征包括单值离散【user id】、多值离散【tags】

self.x = layer.data( name='x', type=dtype.sparse_binary_vector(self.input_dim))
self.y = layer.fc(name='y', input=self.x, size=1,act=paddle.activation.Sigmoid(),param_attr=ParamAttr(name='w', sparse_update=True,)

相关问题