如何解决解决自定义 Tensorflow 损失函数中的编译错误
我正在尝试为 tensorflow 创建一个包含领域知识的损失函数,但遇到了与函数在 tensorflow 中编译和运行的环境相关的问题。我正在寻找解释或文档以了解在损失函数范围内可以做什么。我使用的是 2.4.1 版本的 tensorflow。
AttributeError: 'Tensor' 对象没有属性 'as_list'
我还看到了以下内容: AttributeError: 'Tensor' 对象没有属性 'numpy' AttributeError: 'Tensor' 对象没有属性 'make_ndarray'
如果我可以调试代码会有所帮助,但我还没有看到有关调试编译或获取错误行号的答案,这些错误使整个过程变得脆弱且容易出错。
def domain_specific_loss_function( y_actual,y_predicted ):
shape_tensor = tf.shape( y_actual ).as_list()
batch_size = shape_tensor[0]
dimension_count = shape_tensor[1]
error_list = []
for i in range(0,batch_size):
error_list.append( 0.0 )
for i in range( 0,batch_size ):
is_peak = []
for j in range(0,dimension_count):
is_peak.append( False )
for j in range( 1,dimension_count -1 ):
yr_actual = y_actual[i]
if ((yr_actual[ j - 1 ] < yr_actual[ j ]) and (yr_actual[ j ] > yr_actual[ j + 1 ])):
is_peak[ j ] = True
for j in range( 0,dimension_count ):
yr_actual = y_actual[i]
yr_predicted = y_predicted[i]
if (yr_actual[ j ] < yr_actual[ j ]):
if (not is_peak[ j ]):
error_list[ j ] = 2*(yr_predicted[ j ] - yr_actual[ j ])
else:
error_list[ j ] = yr_predicted[ j ] - yr_actual[ j ];
else:
if (not is_peak[ i ]):
error_list[ j ] = 2*(yr_actual[ j ] - yr_predicted[ j ])
else:
error_list[ j ] = yr_actual[ j ] - yr_predicted[ j ];
return error_list
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。