如上報錯,print 輸入的數據,得到:
KerasTensor(type_spec=TensorSpec(shape=(None, 1), dtype=tf.float32, name='4'), name='4', description="created by layer '4'")
KerasTensor和Tensor是完全不同的格式。
KerasTensor是Keras中封裝的特殊的張量,不具備Tensor很多性質。
可以這么理解,Tensor向下兼容KerasTensor,但是KerasTensor不能向上兼容Tensor。
兩種向量相加等各種操作之后,得到的會是KerasTensor,而非Tensor
Tensor+KerasTensor = KerasTensor
目前尚未找到兩者的轉換方法,解決方法可能是自定義層,或者規避使用keras,如果大家有相關解決方法,歡迎評論區傳送門~
更新:將代碼換一個文件后可以正常運行,未找到原因
參考:https://blog.csdn.net/sparkleyn/article/details/114761371
https://koha9.asuscomm.com/p/tensorflow-multi-input-custom-loss-func/