如何在keras生成器中使用NN?

时间:2019-05-06 18:14:36

标签: keras generator

我正在设置一个fit_generator来训练keras的DNN。但是不知道如何在此生成器中使用CNN。

基本上,我有一个使用完全连接的卷积网络(我们可以将其命名为GEN-NET)的预训练图像生成器。现在,我想在我的fit_generator中使用此Fully-CNN生成无限数量的图像,以在keras中训练另一个分类器(称为CLASS-NET)。但这总是使我的培训崩溃,并且错误消息是:

  

ValueError:Tensor Tensor(“ decoder / transform_output / mul:0”,shape =(?, 128,128,1),dtype = float32)不是此图的元素。

此“ decoder / transform_output / mul:0”是我的CNN GEN-NET的输出。

所以我的问题是我可以在fit_generator中使用基于CNN的GEN-NET来训练GLASS-NET还是在keras中不允许使用?

2 个答案:

答案 0 :(得分:1)

Keras真的不喜欢在单个会话中运行两个单独的模型。您可以在使用模型后使用tensorflow,但这会产生大量开销!

做到这一点的最佳方法,恕我直言,是先生成这些图像,然后使用生成器加载它们。基本上将您的程序分为两个单独的程序。

否则,如果您使用tf.Session作为后端,则可能有一种方法可以通过切换<div class="news" *ngFor="let post of list"> <mat-accordion class="accordion"> <mat-expansion-panel> <mat-expansion-panel-header> <mat-panel-title >{{post.title}}</mat-panel-title> <div class="w3-right"> <mat-panel-title >{{post.date}}</mat-panel-title> </div> </mat-expansion-panel-header> {{post.description}} <app-gallery [postno]={{post.pNo}}></app-gallery> </mat-expansion-panel> </mat-accordion> </div> 上的默认图形来实现,您可以使用Google,但我不建议这样做! :)

答案 1 :(得分:0)

似乎您可能将事情弄混了!除非您使用预训练的网络进行预测,否则需要对CNN(卷积神经网络)进行数据训练。如果您要训练CNN,可以使用fit()fit_generator()函数进行。如果直接输入数据,请使用fit();如果数据是由Image Data Generators处理的,请使用fit_generator()。如果您仅加载经过预训练的模型/权重以进行预测,则无需使用任何拟合函数,因为无需进行训练。