Python中文
首页
教程
问答
标签
搜索
登录
注册
Keras自定义损失函数返回值错误
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在<a href="https://github.com/google-research/google-research/tree/master/tft" rel="nofollow noreferrer">google TFT</a>模型中使用一个自定义损失函数</p> <pre><code>def custom_loss(y_actual,y_pred): tupl = np.shape(y_actual) flag = tf.compat.v1.math.is_nan(y_actual) y_actual = y_actual[tf.compat.v1.math.logical_not(flag)] y_pred = y_pred[tf.compat.v1.math.logical_not(flag)] tensordiff = tf.compat.v1.math.reduce_sum( tf.compat.v1.math.square(y_actual-y_pred)) if len(tupl) >= 2: tensordiff /= tupl[0] if len(tupl) >= 3: tensordiff /= tupl[1] if len(tupl) >= 4: tensordiff /= tupl[2] return tensordiff </code></pre> <p>我能够使用标准损失函数运行代码和训练模型,但当我使用自定义损失函数时,我得到:</p> <pre><code>/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/tensor_util.py:445 make_tensor_proto raise ValueError("None values not supported.") ValueError: None values not supported. </code></pre> <p>有没有办法解决这个问题</p> <p>更新:</p> <p>使用下面的循环代码重新运行</p> <pre><code>def custom_lossGCF1(y_actual,y_pred): tupl = np.shape(y_actual) tensordiff = tf.compat.v1.math.reduce_sum(tf.compat.v1.math.square(y_actual-y_pred)) for x in range(min(len(tupl),4)-1): tensordiff = tf.compat.v1.math.divide_no_nan(tensordiff,tupl[x]) return tensordiff </code></pre> <p>但仍然遇到以下错误:</p> <p>有什么建议吗</p> <pre><code>alueError: in user code: <ipython-input-99-3fb23687b2d6>:1076 custom_lossGCF1 * tensordiff = tf.compat.v1.math.divide_no_nan(tensordiff, tupl[x]) /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:206 wrapper ** return target(*args, **kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:206 wrapper return target(*args, **kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/math_ops.py:1463 div_no_nan y = ops.convert_to_tensor(y, name="y", dtype=x.dtype.base_dtype) /usr/local/lib/python3.7/dist-packages/tensorflow/python/profiler/trace.py:163 wrapped return func(*args, **kwargs) /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/ops.py:1566 convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py:339 _constant_tensor_conversion_function return constant(v, dtype=dtype, name=name) /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py:265 constant allow_broadcast=True) /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py:283 _constant_impl allow_broadcast=allow_broadcast)) /usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/tensor_util.py:445 make_tensor_proto raise ValueError("None values not supported.") ValueError: None values not supported. </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在损失函数中不能有<code>if</code>语句,<code>if</code>没有梯度,只要想想<code>if</code>的导数是什么</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
10 回答
无法使用Django\u mssql\u后端迁移到外部hos
7 回答
无法使用Django&Python3.4连接到MySql
9 回答
无法使用Django+nginx上载媒体文件
2 回答
无法使用Django1.6导入名称模式
5 回答
无法使用Django1.7和mongodb登录管理站点
6 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
4 回答
无法使用Djangockedi验证CBV中的字段
8 回答
无法使用Djangocketditor上载图像(错误400)
5 回答
无法使用Djangocron进行函数调用
1 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
5 回答
无法使用Djangomssql provid
10 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
10 回答
无法使用Djangomssq迁移Django数据库
1 回答
无法使用Djangonox创建用户
5 回答
无法使用Djangopyodb从Django查询SQL Server
3 回答
无法使用Djangopython3ldap连接到ldap
8 回答
无法使用Djangoredis连接到redis
10 回答
无法使用Django中的FK创建新表
4 回答