我在任何地方都找不到反向传播是如何在Keras中完成的?让我解释一下:
假设我有网络
input = Input(shape=(X,X,Y))
x = Conv2D(32,(3,3),padding="same")(input)
x = Conv2D(64,(3,3),padding="same")(x)
x = Conv2D(128,(3,3),padding="same")(x)
x = Conv2D(64,(3,3),padding="same")(x)
Output = Flatten(1024)(x)
Output = Flatten(6)(Output)
model = Model(input,Output)
model.compile(loss="mean_squared_error", optimizer=keras.optimizers.Adam(),metrics=['accuracy'])
model.fit(trainingData,trainingLabels)
最后一层的输出与trainingLabels
进行比较,mean squared error
根据mean squaed error
的值进行反向传播
但是,如果我还想做点什么呢。例如,我想尝试输出向量的每一个置换,结果最小的mean squared error
应该被视为输出,因此反向传播基于最小误差的排列发生。在
像这样的事情在克拉斯有可能吗?如果我能做到的话
model.compile
方法的loss
参数接受python函数。您可以在自定义函数中计算置换集的最小值:然后将其传递给
^{pr2}$model.compile
:请参见here和{a2}以获取参考。在
相关问题 更多 >
编程相关推荐