是否可以使用Tensorflow为输入/输出映射创建神经网络?

时间:2016-10-12 17:22:43

标签: python tensorflow supervised-learning

我目前正在使用tensorflow来创建一个神经网络,它复制了在给定输入的情况下创建特定输出的功能。

此情况下的输入是采样音频,音频正在生成MFCC功能。知道每个文件对应的MFCC功能是什么,但不确定我应该如何设置神经网络。

我正在关注本指南/教程http://www.kdnuggets.com/2016/09/urban-sound-classification-neural-networks-tensorflow.html/2

它说神经网络就是这样设置的

training_epochs = 5000
n_dim = tr_features.shape[1]
n_classes = 10
n_hidden_units_one = 280 
n_hidden_units_two = 300
sd = 1 / np.sqrt(n_dim)
learning_rate = 0.01

我的问题是我如何定义类的数量?我的意思是,我计算的实际值不是分为类,而是十进制数,所以我应该创建具有不同类数的多个网络,并选择具有最小误差的网络到原始值,或者是否有一个tensorflow命令可以做到这一点,因为我正在监督学习..

1 个答案:

答案 0 :(得分:0)

神经网络可用于分类任务或回归任务。在tutorial中,作者希望将声音分为10个不同的类别。所以神经网络有10个输出神经元(n_classes),它们的每个激活值都给出了输入声音类的成员概率。

在我们的例子中,你想用一个十进制数字来映射一个给定的声音(这对吗?),所以它是一个回归任务:神经网络必须学习一个未知的函数。输出神经元的数量必须等于我们未知函数的输出维数(如果它只是一个十进制数,则为1)。

因此,如果您希望为回归任务保留相同的架构,只需设置n_classes = 1并将y_修改为

y_ = tf.matmul(h_2,W) + b

因为tf.nn.softmax将最终得分转换为概率(它对分类有好处,但不适用于回归)