标签: sampling

从List <E>中取n个随机元素?

我如何从一个ArrayList<E>?理想情况下,我希望能够连续调用该take()方法来获取另一个x元素,而无需替换.

java random algorithm sampling

68
推荐指数
6
解决办法
4万
查看次数

与OpenGL TextureSampling相比,糟糕的OpenCL ImageSampling性能

我最近将我的volumeraycaster从OpenGL移植到OpenCL,这使得raycaster的性能降低了大约90%.我跟踪了OpenCL的图像采样功能的性能下降,这比相应的OpenGL纹理采样功能慢得多.通过删除图像采样功能和纹理采样功能,两个raycaster实现具有大致相同的速度.为了轻松地在不同的硬件上使用功能,并在其余的RT代码中排除一些愚蠢的错误,我写了一个小的基准测试,将OpenCL采样速度与OpenGL采样速度进行比较,并在不同的机器上进行测试但是OpenCL仍然只占OpenGL性能的10%左右.

基准测试的OpenCL HostCode(至少是其中最重要的部分):

void OGLWidget::OCLImageSampleTest()
{
    try
    {
    int size=8;
    float Values[4*size*size*size];
    cl::Kernel kernel=cl::Kernel(program,"ImageSampleTest",NULL);
    cl::ImageFormat FormatA(CL_RGBA,CL_FLOAT);
    cl::Image3D CLImage(CLcontext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR ,FormatA,size,size,size,0,0,Values,NULL);


    cl::ImageFormat FormatB(CL_RGBA,CL_UNSIGNED_INT8);
    cl::Image2D TempImage(CLcontext, CL_MEM_WRITE_ONLY,FormatB,1024,1024,0,NULL,NULL );


    kernel.setArg(0, CLImage);
    kernel.setArg(1, TempImage);



    cl::Sampler Samp;
    Samp() = clCreateSampler( CLcontext(), CL_TRUE, CL_ADDRESS_REPEAT, CL_FILTER_LINEAR, NULL);
    kernel.setArg(2, Samp);

    QTime BenchmarkTimer=QTime();
    BenchmarkTimer.start();

    cl::KernelFunctor func = kernel.bind(queue, cl::NDRange(1024,1024), cl::NDRange(32,32));
    func().wait();

    int Duration =  BenchmarkTimer.elapsed();
    printf("OCLImageSampleTest: %d ms \n", Duration);
    }
    catch (cl::Error& err)
      {
        std::cerr << "An OpenCL error occured, " << err.what()
                  << "\nError num …
Run Code Online (Sandbox Code Playgroud)

opengl textures image opencl sampling

54
推荐指数
1
解决办法
2415
查看次数

用于确定音频样本的密钥的算法

我有兴趣确定音频样本的音乐键.算法如何(或可能)试图逼近音乐音频样本的关键字?

Antares Autotune和Melodyne是两款完成此类工作的软件.

任何人都可以给出一些关于这将如何工作的外行的解释?通过分析和弦进行的频谱等,以数学方式推断出歌曲的关键.

这个话题让我很感兴趣!

编辑 - 从为这个问题做出贡献的每个人中找到了精彩的资源和丰富的信息.

尤其来自:the_mandrill和DanielBrückner.

algorithm audio analysis sampling audio-processing

53
推荐指数
4
解决办法
2万
查看次数

替换在numpy.random.choice中意味着什么?

这里解释了这个功能numpy.random.choice.但是,我对第三个参数感到困惑replace.它是什么?在哪种情况下它会有用吗?谢谢!

python sampling

46
推荐指数
2
解决办法
1万
查看次数

如何绘制Android音乐播放器的波形?

我的手机附带的默认动态壁纸之一是一个壁纸,显示在后台实时播放音乐的波形.我想知道如何做到这一点.我似乎应该以某种方式访问​​背景音乐的流数据并实时计算样本,但我不知道如何获取流数据.我想我可以按照本教程http://codeidol.com/java/swing/Au​​dio/Build-an-Audio-Waveform-Display/显示波形,但我不确定如何做到这一点.非常感谢帮助/

audio android waveform sampling

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

从数据帧分层随机抽样

我有一个格式的数据框:

head(subset)
# ants  0 1 1 0 1 
# age   1 2 2 1 3
# lc    1 1 0 1 0
Run Code Online (Sandbox Code Playgroud)

我需要根据年龄和lc创建带有随机样本的新数据框.例如,我想要30个年龄的样本:1和lc:1,30个样本来自年龄:1和lc:0等.

我确实看过随机抽样方法;

newdata <- function(subset, age, 30)
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的代码.

random r sampling

22
推荐指数
4
解决办法
6万
查看次数

使用 R 每天将参与者随机分配到治疗中

问题:

我试图使用 R 生成一个随机研究设计,其中一半的参与者被随机分配到“治疗 1”,另一半被分配到“治疗 2”。但是,因为一半的受试者是男性,一半是女性,而且我还想确保每次治疗都有相同数量的男性和女性,所以应该将一半的男性和女性分配到“治疗 1”,其余的一半应分配给“治疗 2”。

这种设计有两个并发症:(1)这是一项为期一年的研究,必须每天分配参与者进行治疗;(2) 每个参与者必须在 28 天内至少接受“治疗 1”10 次。

这甚至可以在 R 界面中自动化吗?我认为是这样,但我认为我作为 R 程序员的初学者身份禁止我自己找到解决方案。几天来,我一直在努力弄清楚如何实现这一点,并且浏览了本网站上许多类似的帖子,但无法在此处成功应用。我希望那里有人知道一些可以帮助我解决这个问题的技巧,任何建议将不胜感激!

我试过的:

具体信息

# There are 16 participants
p <- c("P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09", "P10", "P11", "P12", "P13", "P14", "P15", "P16")

# Half are male and half are female
g <- c(rep("M", 8), rep("F", 8))

# I make a dataframe but this may not be necessary
df <- cbind.data.frame(p,g)

# There are 365 days in one year …
Run Code Online (Sandbox Code Playgroud)

random r sampling

21
推荐指数
2
解决办法
861
查看次数

是否有加权油藏采样算法?

当数据流中的点具有相关权重时,是否存在如何执行油藏采样的算法?

language-agnostic sampling

16
推荐指数
2
解决办法
5003
查看次数

使用pyaudio时,块,样本和帧是什么

在浏览了pyaudio的文档并阅读了网上的其他文章后,如果我的理解是正确的,我会感到困惑.

这是在pyaudio网站上找到的录音代码:

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()
Run Code Online (Sandbox Code Playgroud)

如果我添加这些行,那么我可以播放我记录的任何内容:

play=pyaudio.PyAudio()
stream_play=play.open(format=FORMAT,
                      channels=CHANNELS,
                      rate=RATE,
                      output=True)
for data in frames: 
    stream_play.write(data)
stream_play.stop_stream()
stream_play.close()
play.terminate()
Run Code Online (Sandbox Code Playgroud)
  1. "RATE"是每秒收集的样本数.
  2. "CHUNK"是缓冲区中的帧数.
  3. 每帧将有2个样本作为"CHANNELS = 2".
  4. 每个样本的大小为2个字节,使用函数计算:pyaudio.get_sample_size(pyaudio.paInt16). …

python audio sampling pyaudio python-2.7

16
推荐指数
1
解决办法
2万
查看次数

如何保留数据流的随机子集?

我有一系列事件流经我的服务器.我不可能存储所有这些,但我希望能够定期处理其中的一些.所以,我想保留一个流的子集,它是我所见过的所有内容的随机抽样,但是上限为最大尺寸.

因此,对于每个新项目,我需要一个算法来决定是否应该将它添加到存储集,或者我是否应该丢弃它.如果我添加它,并且我已经达到极限,我需要一个算法来驱逐其中一个旧项目.

显然,只要我低于我的极限(只保存一切),这很容易.但是,一旦我超过这个限制,我怎样才能保持良好的随机抽样而不偏向旧物品或新物品?

谢谢,

algorithm sampling

15
推荐指数
3
解决办法
7165
查看次数