小编ale*_*lex的帖子

使用深度学习技术的监督学习(文档分类)

我正在阅读有关深度学习的论文.他们中的大多数是指无监督学习.

他们还说,使用无监督的RBM网络对神经元进行预训练.之后,他们使用反向传播算法(监督)进行微调.

那么我们可以使用深度学习解决监督学习问题吗?

我试图找出是否可以将深度学习应用于文档分类问题.我知道有很好的分类器可供选择.但我的目标是找出我们是否可以为此目的使用深度学习.

machine-learning neural-network supervised-learning deep-learning

8
推荐指数
2
解决办法
7436
查看次数

Linux内核中的nr_cpus引导参数

我正在浏览 Linux 内核代码以了解nr_cpus引导参数。根据文档,(https://www.kernel.org/doc/Documentation/kernel-parameters.txt

[SMP] Maximum number of processors that an SMP kernel
            could support.  nr_cpus=n : n >= 1 limits the kernel to
            supporting 'n' processors. Later in runtime you can not
            use hotplug cpu feature to put more cpu back to online.
            just like you compile the kernel NR_CPUS=n
Run Code Online (Sandbox Code Playgroud)

smp.c代码中,该值被设置nr_cpu_ids为然后在内核中的任何地方使用。
http://lxr.free-electrons.com/source/kernel/smp.c

527 static int __init nrcpus(char *str)
528 {
529         int nr_cpus;
530 
531         get_option(&str, &nr_cpus);
532         if (nr_cpus > 0 …
Run Code Online (Sandbox Code Playgroud)

linux smp linux-kernel

3
推荐指数
1
解决办法
4305
查看次数

为什么在prepare_to_wait之后必须在wait_event中检查条件?

我试图了解如何在Linux内核中实现wait_event。ldd3中有一个代码示例,其中使用prepare_to_wait(http://www.makelinux.net/ldd3/chp-6-sect-2)解释了内部实现。

static int scull_getwritespace(struct scull_pipe *dev, struct file *filp)
{
    while (spacefree(dev) == 0) {
        DEFINE_WAIT(wait);

        up(&dev->sem);
        if (filp->f_flags & O_NONBLOCK)
            return -EAGAIN;
        PDEBUG("\"%s\" writing: going to sleep\n",current->comm);
        prepare_to_wait(&dev->outq, &wait, TASK_INTERRUPTIBLE);
        if (spacefree(dev) == 0)  // Why is this check necessary ??
            schedule(  );
        finish_wait(&dev->outq, &wait);
        if (signal_pending(current))
            return -ERESTARTSYS; /* signal: tell the fs layer to handle it */
        if (down_interruptible(&dev->sem))
            return -ERESTARTSYS;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在书中,解释如下。

然后是对缓冲区的强制检查;我们必须处理以下情况:在进入while循环(并丢弃了信号灯)之后但在进入等待队列之前,缓冲区中的空间变得可用。如果没有该检查,如果读取器进程能够在那个时候完全清空缓冲区,那么我们可能会错过唯一一次唤醒并永远休眠的唤醒。在满足自己必须睡觉的满足感之后,我们可以拨打时间表了。

我无法理解这一解释。如果if (spacefree(dev) == 0)在调用schedule()之前未完成睡眠,我们将如何进入不确定的睡眠状态?如果不存在此强制检查,则wakeup()仍将过程状态重置为TASK_RUNNING并按下一段所述返回计划。

值得再次研究这种情况:如果在if语句中的测试与计划调用之间发生唤醒,会发生什么情况?在这种情况下,一切都很好。唤醒会将过程状态重置为TASK_RUNNING并返回计划-尽管不一定立即进行。只要在流程将自己置于等待队列并更改其状态之后进行测试,事情就可以正常进行。

linux-device-driver linux-kernel blockingqueue

0
推荐指数
1
解决办法
541
查看次数