我对 python 很陌生,也许这是一个非常愚蠢/愚蠢的问题,但考虑这个问题我感到非常头痛。
我得到了一组数据,例如整数,我想从中提取随机子集,但每个对象都有不同的概率。如何以尊重数据概率分布的方式提取子集?
我想这np.random_sample给所有样本相同的优先级,所以这不是我正在寻找的......
我正在使用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) 我正在尝试使用 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)
问题仅出现在 …