Python 如何将最后的致密层写入;接受;(x,y)元组
TL;博士: 输入Python 如何将最后的致密层写入;接受;(x,y)元组,python,tensorflow,keras,Python,Tensorflow,Keras,TL;博士: 输入(批次大小,128,60,41,2)和标签(批次大小,128),每个标签为0、1或2。网络输出应如何/如何设计输出 我正在将每个长度为60秒的音频剪辑转换为(128,60,41,2)*。这是每个示例的特征数据 至于标签,对于我提取的128个东西中的每一个,我都有(每个例子)和一组形状(128,) 所以一个(特征,标签)对是int形式的(特征={128,60,41,2},标签={128}) 当我批处理数据时,特征和标签被附加到;e、 g.对于尺寸为10的批次:特征为形状:(101
(批次大小,128,60,41,2)
和标签(批次大小,128)
,每个标签为0、1或2。网络输出应如何/如何设计输出
我正在将每个长度为60秒的音频剪辑转换为(128,60,41,2)
*。这是每个示例的特征数据
至于标签,对于我提取的128个东西中的每一个,我都有(每个例子)和一组形状(128,)
所以一个(特征,标签)对是int形式的(特征={128,60,41,2},标签={128})
当我批处理数据时,特征和标签被附加到;e、 g.对于尺寸为10的批次:特征为形状:(10128,60,41,2)
,标签为形状(10128)
我澄清的问题是:我如何设计网络以根据此标签计算损失
较长版本:
最后一个致密层应具有3个单元,每类一个。现在,我有一批bs
项目。因此,我的标签是(bs,128)
。如何设计网络来计算损耗;第一批产品的形状为(128,60,41,2)
,第一批产品的标签为(128,)
。其中的每个标签都是0、1或2。现在我想计算一下,将网络设计为具有(无,128,3)
形状作为最后一个输出
None是批量大小,128表示我提取的所有内容,3表示我有三个类
编辑:谢谢你的注释,我希望能澄清这个问题
*对于进一步感兴趣的人:
我在时间轴上使用滑动窗口。对于每个窗口,我提取对数比例的光谱图。此处,128是窗口数,60和41控制Mel比例,2用于添加增量标注
生成音频的代码:
def sub_方法(fn、标签、带、帧、增量):
定义窗口(数据、窗口大小):
开始=0
启动时0:#检查是否有空段
返回1,段\特征,段\标签
其他:
返回0,0,0
试试这个:
import tensorflow as tf
from tensorflow.keras.layers import Input, Dense, Reshape
from tensorflow.keras import Sequential
model = Sequential([
Reshape((128, -1), input_shape=(128, 60, 41, 2)),
Dense(3)
])
inp = tf.random.uniform([10, 128, 60, 41, 2], dtype=tf.float32)
labels = tf.random.uniform([10, 128], 0, 3, dtype=tf.int32)
pred = model(inp)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(inp, labels)
您已经告诉了我们您所拥有的(sorta,对于针对NN人员的问题,有很多音频处理行话需要理解),但没有告诉我们您想要什么,或者您认为您可以如何达到目标。@DanielF,我澄清了这个问题。你(或其他人)有机会重新打开它吗?我宁愿避免提出新问题来减少垃圾邮件。谢谢。问题的描述与此相似,解决了我的问题。我将您建议的重塑操作用作网络中倒数第二层。谢谢