Python 迁移学习-如何仅更改TensorFlow中的输出层?
我试图应用Rusu等人在年提出的一个想法,即训练一个神经网络,根据输入的类别改变输出层,即,如果我们知道输入的id,我们将选择相应的输出层。这样,所有隐藏层都将使用所有数据进行训练,但每个输出层将仅使用其相应类型的输入数据进行训练 这是为了在迁移学习框架中取得良好效果 如何在tensorflow 2.0中实现这一“最后一层的更改”?如果使用,您实际上可以定义前进过程Python 迁移学习-如何仅更改TensorFlow中的输出层?,python,tensorflow2.0,reinforcement-learning,transfer-learning,Python,Tensorflow2.0,Reinforcement Learning,Transfer Learning,我试图应用Rusu等人在年提出的一个想法,即训练一个神经网络,根据输入的类别改变输出层,即,如果我们知道输入的id,我们将选择相应的输出层。这样,所有隐藏层都将使用所有数据进行训练,但每个输出层将仅使用其相应类型的输入数据进行训练 这是为了在迁移学习框架中取得良好效果 如何在tensorflow 2.0中实现这一“最后一层的更改”?如果使用,您实际上可以定义前进过程 classmymodel(tf.keras.Model): 定义初始化(自): 超级(模型,自我)。\uuuu初始化 self.b
classmymodel(tf.keras.Model):
定义初始化(自):
超级(模型,自我)。\uuuu初始化
self.block_1=BlockA()
self.block_2=BlockB()
self.global_pool=layers.globalaveragepoolg2d()
self.classifier=密集(num\u类)
def呼叫(自我,输入):
如果条件:
x=自块_1(输入)
其他:
x=自身块2(输入)
x=自全局_池(x)
返回自分类器(x)
你仍然需要弄清楚后支撑部分,但我认为如果你使用多输出模型并同时训练所有“最后一层”,这是相当容易的。我最初想到的方法与此类似,但后支撑部分出现了问题。“同时”训练最后几层是什么意思?我的意思是,我只想训练与所用输入类型相对应的最后一层…用多个输入和输出训练模型。例如,如果您训练一个数字和一个dog/cat分类器,您将同时从digit数据集中输入一个批次,从dog/cat数据集中输入另一个批次。你将有两个一个热向量作为输出。我不太理解多输入的概念。。。这意味着我的隐藏层(至少第一层)也必须改变大小,对吗?我真正想要的是保持隐藏层的结构,然后调用与输入类对应的输出层。