鉴于Layer API已被弃用,如何在不使用tf.keras的情况下在tf2中构建模型(或推荐的构建模型的方法是什么?问题#30829有相同的问题,但已关闭,没有任何答案。
更新:
我可以使用tf.keras.layers
而不是tf.layers
,但是当我构建完所有图层并需要返回模型后,是否可以NOT使用keras
模型,进行编译,拟合,预测和评估,并且只是按照张量流的方式进行?
如果您想知道为什么我想做这样的事情,那就是我想使用估计量来训练,而不是使用keras的fit函数。存在keras_model_to_estimator
,但似乎不是keras_model_to_estimator
matureenough
Google发布了从TF 1到TF 2的迁移指南,yet。
推荐的建模方式
[section Converting Models建议将Guide (section "Models based on tf.layers")模型转换为tf.layers
:
转换是一对一的,因为从v1.layers到tf.keras.layers有直接映射。
构建没有Keras的模型
该选项是提供自己的层实现(指南中的示例):
tf.keras.layers
但是值得考虑W = tf.Variable(tf.ones(shape=(2,2)), name="W")
b = tf.Variable(tf.zeros(shape=(2)), name="b")
@tf.function
def forward(x):
return W * x + b
out_a = forward([1,0])
print(out_a)
(tf.keras.layers.Layer
),它具有一定程度的自由度,但与Keras的其余部分(以及它的层)集成在一起。
即使使用example编写的图层,您也可以编写自己的训练循环(tf.keras
)。
总而言之,实际上TF 2.0要求您使用example。