小编Isa*_*aac的帖子

为什么Valgrind在夜间使用1.29.0时没有检测到Rust程序中的内存泄漏?

我正在尝试使用Valgrind在此博客文章后检测Rust程序中的内存泄漏.我的源代码很简单:

#![feature(alloc_system)]
extern crate alloc_system;

use std::mem;

fn allocate() {
    let bad_vec = vec![0u8; 1024*1024];
    mem::forget(bad_vec);
}

fn main() {
    allocate();
}
Run Code Online (Sandbox Code Playgroud)

我希望调用mem::forget()生成一个Valgrind可以接收的内存泄漏.但是,当我运行Valgrind时,它报告没有泄漏是可能的:

[memtest]> cargo run
   Compiling memtest v0.1.0 (file:///home/icarruthers/memtest)
    Finished dev [unoptimized + debuginfo] target(s) in 0.28s
     Running `target/debug/memtest`
[memtest]> valgrind target/debug/memtest
==18808== Memcheck, a memory error detector
==18808== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==18808== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==18808== Command: target/debug/memtest
==18808== …
Run Code Online (Sandbox Code Playgroud)

valgrind rust

7
推荐指数
1
解决办法
869
查看次数

为什么LinearSVC不能做这个简单的分类?

我正在尝试使用该LinearSVC对象进行以下简单分类scikit-learn.我尝试过同时使用0.10和0.14版本.使用代码:

from sklearn.svm import LinearSVC, SVC
from numpy import *

data = array([[ 1007.,  1076.],
              [ 1017.,  1009.],
              [ 2021.,  2029.],
              [ 2060.,  2085.]])
groups = array([1, 1, 2, 2])

svc = LinearSVC()
svc.fit(data, groups)
svc.predict(data)
Run Code Online (Sandbox Code Playgroud)

我得到输出:

array([2, 2, 2, 2])
Run Code Online (Sandbox Code Playgroud)

但是,如果我用分隔符替换分类器

svc = SVC(kernel='linear')
Run Code Online (Sandbox Code Playgroud)

然后我得到了结果

array([ 1.,  1.,  2.,  2.])
Run Code Online (Sandbox Code Playgroud)

哪个是对的.有谁知道为什么使用LinearSVC会破坏这个简单的问题?

python libsvm scikit-learn liblinear

6
推荐指数
1
解决办法
5729
查看次数

标签 统计

liblinear ×1

libsvm ×1

python ×1

rust ×1

scikit-learn ×1

valgrind ×1