小编thu*_*v89的帖子

如何在自定义损失函数中遍历张量?

我正在使用带有tensorflow后端的keras。我的目标是batchsize自定义损失函数中查询当前批次的。这是计算定制损失函数的值所必需的,该值取决于特定观测值的索引。鉴于以下最少的可重现示例,我想更清楚地说明这一点。

(顺便说一句:当然,我可以使用为培训过程定义的批量大小,并在定义自定义损失函数时使用它的值,但是有一些原因可以使之变化,特别是如果epochsize % batchsize(epochsize modulo batchsize)不等于零,那么最后一个时期的大小是不同的,我没有在stackoverflow中找到合适的方法,特别是例如 自定义损失函数中的Tensor索引Keras中的Tensorflow自定义损失函数-在张量上循环在张量上循环因为显然在建立图时无法推断任何张量的形状(损失函数就是这种情况)-形状推断仅在评估给定数据时才可能进行,而这仅在给定图时才可能进行。因此,我需要告诉自定义损失函数对沿某个维度的特定元素执行某些操作,而无需知道维度的长度。

(所有示例都一样)

from keras.models import Sequential
from keras.layers import Dense, Activation

# Generate dummy data
import numpy as np
data = np.random.random((1000, 100))
labels = np.random.randint(2, size=(1000, 1))

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)

示例1:没有问题的没有特别之处,没有自定义损失

model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy'])    

# Train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=10, batch_size=32)
Run Code Online (Sandbox Code Playgroud)

(输出省略,这完全可以正常运行)

示例2:没有什么特别的,具有相当简单的自定义损失

def custom_loss(yTrue, …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow loss-function

18
推荐指数
1
解决办法
2404
查看次数

计算 GRU 层(Keras)的参数数量

为什么GRU层的参数个数是9600?

不应该是 ((16+32)*32 + 32) * 3 * 2 = 9,408 吗?

或者,重新排列,

32*(16 + 32 + 1)*3*2 = 9408

model = tf.keras.Sequential([
    tf.keras.layers.Embedding(input_dim=4500, output_dim=16, input_length=200),
    tf.keras.layers.Bidirectional(tf.keras.layers.GRU(32)),
    tf.keras.layers.Dense(6, activation='relu'),
    tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
model.summary()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

lstm tensorflow gated-recurrent-unit

6
推荐指数
1
解决办法
2703
查看次数

TensorFlow 和 Keras 入门:过去 (TF1) 现在 (TF2)

这个问题的目的是寻求一个最低限度的指南,让某人快速了解 TensorFlow 1 和 TensorFlow 2。我觉得没有一个连贯的指南来解释 TF1 和 TF2 之间的差异,并且 TF 已经通过了专业修订和快速发展。

我说的时候供参考,

  • v1 或 TF1 - 我指的是 TF 1.15.0
  • v2 或 TF2 - 我指的是 TF 2.0.0

我的问题是,

  • TF1/TF2 如何工作?它们的主要区别是什么?

  • TF1 和 TF2 中有哪些不同的数据类型/数据结构?

  • 什么是 Keras,它如何适应所有这些?Keras 提供了哪些不同的 API 来实现深度学习模型?你能提供每个例子吗?

  • 在使用 TF 和 Keras 时,我必须注意的最经常出现的警告/错误是什么?

  • TF1 和 TF2 之间的性能差异

python machine-learning keras tensorflow tensorflow2.0

6
推荐指数
1
解决办法
1889
查看次数

RaggedTensor 的 TensorFlow 广播

如何从参差不齐的张量中减去张量?

例子:

import tensorflow as tf    # TensorFlow 2.6

X = tf.ragged.constant([[[3, 1], [3]],
                        [[2], [3, 4]]], ragged_rank=2)
y = tf.constant([[1], [2]])
X-y
Run Code Online (Sandbox Code Playgroud)

预期结果:

[[[2, 0], [1]],
 [[1], [1, 2]]]
Run Code Online (Sandbox Code Playgroud)

但是,它返回一个错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected 'tf.Tensor(False, shape=(), dtype=bool)' to be true. Summarized data: b'Unable to broadcast: dimension size mismatch in dimension'
1
b'lengths='
2
b'dim_size='
2, 2
Run Code Online (Sandbox Code Playgroud)

我知道我可以逐行完成:

tensorflow.python.framework.errors_impl.InvalidArgumentError: Expected 'tf.Tensor(False, shape=(), dtype=bool)' to be true. Summarized data: b'Unable to broadcast: dimension size mismatch in dimension'
1
b'lengths='
2
b'dim_size='
2, 2 …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow2.0

5
推荐指数
1
解决办法
337
查看次数

如何隐藏预测进度条

在此输入图像描述

当我使用tensorflow==2.9来预测模型时,我得到了进度条,但我不想显示这个进度条,如何隐藏这个进度条?这让我很生气。

progress-bar tensorflow2.0

5
推荐指数
1
解决办法
6281
查看次数