Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • models
  • Issue
  • #181

M
models
  • 项目概览

PaddlePaddle / models
大约 2 年 前同步成功

通知 232
Star 6828
Fork 2962
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 602
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 255
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
M
models
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 602
    • Issue 602
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 255
    • 合并请求 255
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 7月 31, 2017 by saxon_zh@saxon_zhGuest

在mq2007数据集上训练LR模型,train cost没有呈现下降。

Created by: lutaojian

常使用paddle实验LR模型,在mq2007数据集上做point wise模型,具体网络实现如下。训练过程中train cost没有呈现下降趋势,但test cost反馈出下降,无法确定是否已经收敛。

有两个问题求大神解答: 1)下文的网络实验是否与LR模型等价; 2)训练过程train cost不下降是否正常。 d9e0c3f8e0caf8a1db6cd77511e6d994

def sigmoid(input_dim): # data layer data = paddle.layer.data("data", paddle.data_type.dense_vector(input_dim))

# sigmoid
output = paddle.layer.fc(
    input=data,
    size=1,
    act=paddle.activation.Sigmoid(),
    param_attr=paddle.attr.Param(initial_std=0.01, name="output"))

return output

def lr(input_dim): # label layer label = paddle.layer.data("label", paddle.data_type.dense_vector(1))

# output layer
output = sigmoid(input_dim)

# cost layer
cost = paddle.layer.multi_binary_label_cross_entropy_cost(input=output, label=label)

return cost

def train_lr(num_passes): fill_default_train = functools.partial(paddle.dataset.mq2007.train, format="pointwise") fill_default_test = functools.partial(paddle.dataset.mq2007.test, format="pointwise") train_reader = paddle.batch(paddle.reader.shuffle(fill_default_train, buf_size=100), batch_size=100) test_reader = paddle.batch(fill_default_test, batch_size=100)

# mq2007 feature_dim = 46, dense format
feature_dim = 46
cost = lr(feature_dim)
parameters = paddle.parameters.create(cost)

trainer = paddle.trainer.SGD(
    cost=cost,
    parameters=parameters,
    update_equation=paddle.optimizer.Adam(learning_rate=2e-4))

# Define the input data order
feeding = {"label": 0, "data": 1}

#  Define end batch and end pass event handler
def event_handler(event):
    if isinstance(event, paddle.event.EndIteration):
        if event.batch_id % 100 == 0:
            print "Train with Pass %d Batch %d Cost %.9f" % (
                event.pass_id, event.batch_id, event.cost)
        else:
            sys.stdout.write(".")
            sys.stdout.flush()
    if isinstance(event, paddle.event.EndPass):
        result = trainer.test(reader=test_reader, feeding=feeding)
        print "\nTest with Pass %d Cost %.9f\n" % (event.pass_id, result.cost)
        with gzip.open("lr_params_%d.tar.gz" % (event.pass_id), "w") as f:
            parameters.to_tar(f)

trainer.train(
    reader=train_reader,
    event_handler=event_handler,
    feeding=feeding,
    num_passes=num_passes)
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/models#181
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7