最近,我开始使用Tensorflow + Keras创建神经网络,我想尝试Tensorflow中提供的量化功能.到目前为止,尝试TF教程的示例工作得很好,我有这个基本的工作示例(来自https://www.tensorflow.org/tutorials/keras/basic_classification):
import tensorflow as tf
from tensorflow import keras
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
# fashion mnist data labels (indexes related to their respective labelling in the data set)
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
# preprocess the train and test images
train_images = train_images / 255.0
test_images = test_images / 255.0
# settings variables
input_shape = (train_images.shape[1], train_images.shape[2])
# create the model layers
model …Run Code Online (Sandbox Code Playgroud) 我想我不了解多输出网络。
我一直都了解实现的实现方式,并且成功地训练了一个这样的模型,但我不了解如何训练多输出深度学习网络。我的意思是,培训期间网络内部发生了什么?
以keras功能性API指南中的以下网络为例:
您可以看到两个输出(aux_output和main_output)。反向传播如何运作?
我的直觉是该模型进行两次反向传播,每个输出一次。然后,每个反向传播都会更新退出之前的图层的权重。 但这似乎是不正确的:从这里(SO),我得到的信息是,尽管有多个输出,但只有一个反向传播;根据输出对使用的损失进行加权。
但是,我仍然不知道如何训练网络及其辅助分支。由于未直接连接到主输出,辅助分支权重如何更新?网络的辅助分支的根与主输出之间的部分是否受到损失加权的影响?还是权重仅影响连接到辅助输出的网络部分?
另外,我正在寻找有关此主题的好文章。我已经读过GoogLeNet / Inception文章(v1,v2-v3),因为该网络正在使用辅助分支。
backpropagation neural-network multipleoutputs deep-learning keras
我试图了解 CTC 损失如何用于语音识别以及它如何在 Keras 中实现。
大体上,CTC 损失被添加到经典网络之上,以便逐个元素(文本或语音的逐个字母)解码顺序信息元素,而不是直接直接解码元素块(例如单词)。
假设我们正在将某些句子的话语作为 MFCC 来提供。
使用 CTC-loss 的目标是学习如何使每个字母在每个时间步与 MFCC 匹配。因此,Dense+softmax 输出层由与组成句子所需的元素数量一样多的神经元组成:
然后,softmax 层有 29 个神经元(26 个用于字母表 + 一些特殊字符)。
为了实现它,我发现我可以做这样的事情:
# CTC implementation from Keras example found at https://github.com/keras-
# team/keras/blob/master/examples/image_ocr.py
def ctc_lambda_func(args):
y_pred, labels, input_length, label_length = args
# the 2 is critical here since the first couple outputs of the RNN
# tend to be garbage:
# print "y_pred_shape: ", y_pred.shape
y_pred …Run Code Online (Sandbox Code Playgroud) 这实际上并不是一个特定于代码的问题,但我无法找到任何答案或资源。
我目前正在尝试自学一些“纯”TensorFlow,而不仅仅是使用 Keras,我觉得如果有一些源代码包含 TensorFlow 代码和等效的 Keras 代码并排进行比较,那将会非常有帮助。
不幸的是,我在互联网上找到的大多数结果都讨论了性能方面的差异或有非常简单的比较示例(例如“这就是为什么 Keras 使用起来更简单”)。我对这些细节并不像对代码本身那么感兴趣。
有谁知道是否有任何资源可以帮助解决这个问题?