Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TensorFlow 2:运行时错误:无法对稀疏变量使用约束函数_Tensorflow_Keras_Tensorflow2.0_Keras Layer_Keras 2 - Fatal编程技术网

TensorFlow 2:运行时错误:无法对稀疏变量使用约束函数

TensorFlow 2:运行时错误:无法对稀疏变量使用约束函数,tensorflow,keras,tensorflow2.0,keras-layer,keras-2,Tensorflow,Keras,Tensorflow2.0,Keras Layer,Keras 2,我使用嵌入\u约束定义嵌入对象: from tensorflow.keras.layers import Embedding from tensorflow.keras.constraints import UnitNorm . . . emb = Embedding(input_dim, output_dim, name='embedding_name', embeddings_constraint=UnitNorm(axis=1)) . . . 在代码的后面,当我想训练包含emb的模型时,

我使用
嵌入\u约束定义嵌入对象

from tensorflow.keras.layers import Embedding
from tensorflow.keras.constraints import UnitNorm
. . .
emb = Embedding(input_dim, output_dim, name='embedding_name', embeddings_constraint=UnitNorm(axis=1))
. . .
在代码的后面,当我想训练包含
emb
的模型时,我从函数
模型中得到一个异常。fit

RuntimeError: Cannot use a constraint function on a sparse variable.
但是,当我不对
emb
施加嵌入约束时,代码不会抛出错误。此外,我在TF 1中尝试了这一点,并且它也很好地工作(有和没有
嵌入\u约束
)。根据a,这似乎是TF2错误,尽管没有提出有效的解决方案


有什么办法可以解决这个问题吗?

这个问题的解决方法是直接调用约束,如下所示:

从tensorflow.keras.layers导入嵌入
从tensorflow.keras.constraints导入UnitNorm
. . .
emb=嵌入(输入尺寸、输出尺寸、名称=”嵌入名称“)
标准层=单位标准(轴=1)
norm_嵌入=norm_层(emb(嵌入id_输入))
. . .