小编use*_*540的帖子

scipy io读取wavfile错误

每当我尝试读取 .wav 文件时,都会出现以下错误。我到处寻找但没有任何进展。
代码:

import scipy as sp
import matplotlib.pyplot as plt
sr, y = sp.io.wavfile.read(MY_FILENAME)
print sr
Run Code Online (Sandbox Code Playgroud)


错误:

  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 252, in read
    fmt_chunk = _read_fmt_chunk(fid, is_big_endian)
  File "/usr/local/lib/python2.7/dist-packages/scipy/io/wavfile.py", line 94, in _read_fmt_chunk
    raise ValueError("Unknown wave file format")
  ValueError: Unknown wave file format
Run Code Online (Sandbox Code Playgroud)

更新:

在我尝试使用 sox 按照 @velikodniy 的建议转换我的文件后:

sox MY_FILENAME.wav MY_FILENAME.wav
Run Code Online (Sandbox Code Playgroud)

但它引发了另一个警告:

sox WARN wav: Premature EOF on .wav input file
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试播放原始 .wav 文件,它会显示媒体播放器中不支持的格式(之前正在播放)

python wav scipy audio-processing python-2.7

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

Keras:每个时期的混淆矩阵

参考this后,我可以使用 Keras Callback 记录每个时期的损失。有什么方法可以计算混淆矩阵并将其用作度量标准吗?

更新 我试图定义以下函数来返回混淆矩阵,但这仍然不起作用。

def con_mat(y_true,y_pred):
    total_correct_true = K.sum(K.round(K.clip(y_true*y_pred,0,1)))
    total_true = K.sum(y_true)
    predicted_true = K.sum(K.round(y_pred))
    return (total_correct_true)/(total_true+predicted_true)
Run Code Online (Sandbox Code Playgroud)

我认为 True positive 的逻辑是正确的,但它没有按预期工作。

python deep-learning keras

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

批量训练但在 Tensorflow 中测试单个数据项?

我已经训练了一个批量大小为 10 的卷积神经网络。但是在测试时,我想分别预测每个数据集的分类而不是批量预测,这会产生错误:

Assign requires shapes of both tensors to match. lhs shape= [1,3] rhs shape= [10,3]
Run Code Online (Sandbox Code Playgroud)

我理解 10 指的是batch_size3 是我要分类的类的数量。

我们可以不使用批次进行训练并单独测试吗?

更新:

训练阶段:

batch_size=10
classes=3
#vlimit is some constant : same for training and testing phase
X = tf.placeholder(tf.float32, [batch_size,vlimit ], name='X_placeholder')
Y = tf.placeholder(tf.int32, [batch_size, classes], name='Y_placeholder')
w = tf.Variable(tf.random_normal(shape=[vlimit, classes], stddev=0.01), name='weights')
b = tf.Variable(tf.ones([batch_size,classes]), name="bias")
logits = tf.matmul(X, w) + b
entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y, name='loss')
loss = tf.reduce_mean(entropy)
optimizer = tf.train.AdamOptimizer(learning_rate).minimize(loss)
Run Code Online (Sandbox Code Playgroud)

测试阶段:

batch_size=1 …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network conv-neural-network tensorflow

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

VGG16转移学习变化的输出

使用VGG16进行迁移学习时观察到奇怪的行为。

model = VGG16(weights='imagenet',include_top=True)
model.layers.pop()
model.layers.pop()

for layer in model.layers:
    layer.trainable=False

new_layer = Dense(2,activation='softmax')
inp = model.input
out = new_layer(model.layers[-1].output)

model = Model(inp,out)
Run Code Online (Sandbox Code Playgroud)

但是,model.predict(image)使用时,输出在分类方面有所不同,即有时将图像分类为1类,而下次将同一图像分类为2类。

python deep-learning keras transfer-learning

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

如何在Keras中实现Sklearn Metric作为度量?

尝试谷歌搜索,但无法找到如何实现像kehen kappa,roc,f1score中的Sklearn指标作为不平衡数据的指标.

如何在Keras中实现Sklearn Metric作为度量?

python machine-learning scikit-learn keras

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

使用 Keras 进行二元分类时,测试损失不会改善

我有一个包含 65 个特征和 2 个标签的数据集,并且想要执行二元分类。

问题是测试损失不会改善,测试精度也不会改善。

训练损失与测试损失

训练损失与测试损失


训练准确度与测试准确度
训练ACC与测试ACC


代码

model = Sequential()
model = Sequential()
model.add(Dense(10, activation='relu', input_dim=n_features))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['acc'])
Run Code Online (Sandbox Code Playgroud)


数据集高度不平衡 (1:30)
我该如何改进我的模型?

python machine-learning keras

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