小编Gio*_*lli的帖子

不同概率的随机抽样

我对 python 很陌生,也许这是一个非常愚蠢/愚蠢的问题,但考虑这个问题我感到非常头痛。

我得到了一组数据,例如整数,我想从中提取随机子集,但每个对象都有不同的概率。如何以尊重数据概率分布的方式提取子集?

我想这np.random_sample给所有样本相同的优先级,所以这不是我正在寻找的......

python random

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

Keras crossentropy

我正在使用Keras,我正在尝试使用Keras抽象后端重写categorical_crossentropy,但我被卡住了.

这是我的自定义函数,我只想要交叉熵的加权和:

def custom_entropy( y_true, y_pred):
    y_pred /= K.sum(y_pred, axis=-1, keepdims=True)

    # clip to prevent NaN's and Inf's
    y_pred = K.clip(y_pred, K.epsilon(), 1 - K.epsilon())

   loss = y_true * K.log(y_pred) 
   loss = -K.sum(loss, -1)

   return loss
Run Code Online (Sandbox Code Playgroud)

在我的程序中,我生成一个label_predto to model.predict().

最后我做了:

    label_pred = model.predict(mfsc_train[:,:,5])
    cc = custom_entropy(label, label_pred)
    ce = K.categorical_crossentropy(label, label_pred)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "SAMME_train_all.py", line 47, in <module>
    ce = K.categorical_crossentropy(label, label_pred)
  File "C:\Users\gionata\AppData\Local\Programs\Python\Python36\lib
s\keras\backend\tensorflow_backend.py", line 2754, in categorical_c
    axis=len(output.get_shape()) - 1, …
Run Code Online (Sandbox Code Playgroud)

python keras

5
推荐指数
1
解决办法
356
查看次数

librosa 无法打开由 librosa 创建的 .wav?

我正在尝试使用 librosa 通过从一些持续时间为 60 秒的 .wav 文件中剪切 1 秒的片段来生成一些数据。

这部分有效,我创建了所有文件,我也可以通过任何播放器收听它们,但是如果我尝试使用 librosa.load 打开它们,我会收到此错误:

>>> librosa.load('.\\train\\audio\\silence\\0doing_the_dishes.wav', sr=None)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "C:\Users\gionata\AppData\Local\Programs\Python\Python36\lib\site\packages\librosa\core\audio.py", line 107, in load
with audioread.audio_open(os.path.realpath(path)) as input_file: File "C:\Users\gionata\AppData\Local\Programs\Python\Python36\lib\site-packages\audioread\__init__.py", line 116, in audio_open 
raise NoBackendError()
audioread.NoBackendError
Run Code Online (Sandbox Code Playgroud)

您有什么建议吗?我使用以下函数创建 file.wav:

def create_silence():
    path=DB+"_background_noise_/"
    sounds = [x[len(DB):] for x in glob.glob(path+ '*.wav')]
    for elem in enumerate(sounds):
       sound=elem.split('\\')[1]
       print(sound)
       for j,i in enumerate(np.arange(0.0, 59.0, 0.3)):
           y, sr=librosa.load(DB+elem, sr=None, offset=i, duration=1.0)
           librosa.output.write_wav(DB+'silence/'+str(j)+sound, y, sr=sr, norm=False)
Run Code Online (Sandbox Code Playgroud)

问题仅出现在 …

python audio wav librosa

5
推荐指数
2
解决办法
9374
查看次数

标签 统计

python ×3

audio ×1

keras ×1

librosa ×1

random ×1

wav ×1