小编Tim*_*lin的帖子

Bert Trainer 实例中的提前停止

我正在针对多类分类任务微调 BERT 模型。我的问题是我不知道如何向这些 Trainer 实例添加“提前停止”。有任何想法吗?

python neural-network deep-learning huggingface-transformers huggingface

26
推荐指数
1
解决办法
2万
查看次数

TensorFlow 中的 tf.newaxis 操作

x_train = x_train[..., tf.newaxis].astype("float32")

x_test = x_test[..., tf.newaxis].astype("float32")

有人可以解释一下如何tf.newaxis工作吗?

我在文档中发现了一个简短的提及

https://www.tensorflow.org/api_docs/python/tf/strided_slice

但我无法正确理解。

python tensorflow

16
推荐指数
2
解决办法
2万
查看次数

keras.tokenize.text_to_sequences 和词嵌入有什么区别

之间的区别tokenize.fit_on_texttokenize.text_to_sequence以及word embeddings

试图在各种平台上搜索,但没有得到合适的答案。

tokenize keras word-embedding tensorflow2.0 tensorflow2.x

7
推荐指数
1
解决办法
1821
查看次数

验证损失低于训练LSTM的训练损失

我正在张量流中使用 tf.learn 训练 LSTM。为此,我将数据分为训练(90%)和验证(10%)。据我了解,模型通常比验证数据更适合训练数据,但我得到了相反的结果。验证集的损失更低,准确性更高。

正如我在其他答案中读到的那样,这可能是因为验证期间未应用 dropout。然而,当我从 LSTM 架构中删除 dropout 时,验证损失仍然低于训练损失(尽管差异较小)。

此外,每个 epoch 结束时显示的损失并不是每个批次损失的平均值(例如使用 Keras 时)。这是他最后一批的损失。我也认为这可能是我的结果的一个原因,但事实证明并非如此。

Training samples: 783
Validation samples: 87
--
Training Step: 4  | total loss: 1.08214 | time: 1.327s
| Adam | epoch: 001 | loss: 1.08214 - acc: 0.7549 | val_loss: 0.53043 - val_acc: 0.9885 -- iter: 783/783
--
Training Step: 8  | total loss: 0.41462 | time: 1.117s
| Adam | epoch: 002 | loss: 0.41462 - acc: 0.9759 | val_loss: 0.17027 - val_acc: 1.0000 …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm tensorflow tflearn

7
推荐指数
1
解决办法
3907
查看次数

无法在PyCharm中导入Keras(从TensorFlow 2.0)

我刚刚在PyCharm中安装了TensorFlow 2.0的稳定版本(于2019年10月1日发布)。

问题keras软件包不可用无法导入喀拉拉邦

实际的错误,我 S:“ 不能从tensorflow导入名称‘keras’ ”。

我已经通过安装pip install tensorflow==2.0.0CPU version,然后通过卸载了CPU版本并安装了GPU版本。pip install tensorflow-gpu==2.0.0.

以上TensorFlow的可用版本均无法正常运行(无法通过导入keras或其他软件包from tensorflow.package_X import Y)。

如果我复归TensorFlow到版本2.0.0.b1keras可作为一个包(PyCharm承认它),一切顺利。

有办法解决这个问题吗?我在安装过程中犯了错误吗?

更新---从Python控制台导入有效,并且允许导入而没有任何错误。 从控制台工作

pycharm windows-10 tf.keras tensorflow2.0

7
推荐指数
1
解决办法
1756
查看次数

如何解决 KeyError: 'val_mean_absolute_error' Keras 2.3.1 and TensorFlow 2.0 from Chollet Deep Learning with Python

我在 Chollet 的书 Deep Learning with Python 的第 3.7 节。该项目旨在找出 1970 年代特定波士顿郊区的房屋价格中位数。

https://github.com/fchollet/deep-learning-with-python-notebooks/blob/master/3.7-predicting-house-prices.ipynb

在“使用 K 折验证验证我们的方法”部分,我尝试运行以下代码块:

num_epochs = 500
all_mae_histories = []
for i in range(k):
    print('processing fold #', i)
    # Prepare the validation data: data from partition # k
    val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
    val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]

    # Prepare the training data: data from all other partitions
    partial_train_data = np.concatenate(
        [train_data[:i * num_val_samples],
         train_data[(i + 1) * …
Run Code Online (Sandbox Code Playgroud)

python-3.x keyerror keras tensorflow jupyter-notebook

7
推荐指数
2
解决办法
6347
查看次数

tf model.fit() 中的batch_size 与 tf.data.Dataset 中的batch_size

我有一个可以容纳主机内存的大型数据集。但是,当我使用 tf.keras 训练模型时,会出现 GPU 内存不足问题。然后我查看 tf.data.Dataset 并希望使用其 batch() 方法对训练数据集进行批处理,以便它可以在 GPU 中执行 model.fit() 。根据其文档,示例如下:

train_dataset = tf.data.Dataset.from_tensor_slices((train_examples, train_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_examples, test_labels))

BATCH_SIZE = 64
SHUFFLE_BUFFER_SIZE = 100

train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
test_dataset = test_dataset.batch(BATCH_SIZE)
Run Code Online (Sandbox Code Playgroud)

dataset.from_tensor_slices().batch()中的BATCH_SIZE与tf.keras modelt.fit()中的batch_size相同吗?

我应该如何选择BATCH_SIZE,以便GPU有足够的数据来高效运行,同时又不至于内存溢出?

tensorflow tensorflow2.0 tensorflow2.x

7
推荐指数
1
解决办法
6983
查看次数

fastai - 图像分割的多类度量

I\xe2\x80\x99m 目前正在探索如何使用 fastai 将 Dice 度量应用于多类分割问题。我查了一下概念,发现 Dice 和 F1Score 确实很相似。接下来,我有两个关于它们在fastai.metrics中的实现的问题:

\n\n
    \n
  • dice()和输出有何不同fbeta(beta=1)
  • \n
  • MultiLabelFbeta该类适合多标签图像分割用例吗?
  • \n
  • 如果没有,是否有现有的指标可以帮助我?
  • \n
\n\n

非常感谢您,祝您有美好的一天!

\n

python computer-vision image-segmentation pytorch fast-ai

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

Keras自定义指标总和错误

我尝试实施precisionrecall作为自定义指标,如https://datascience.stackexchange.com/questions/45165/how-to-get-accuracy-f1-precision-and-recall-for-a-keras-model/45166#45166 ?newreg=6190503b2be14e8aa2c0069d0a52749e,但由于某种原因,这些数字是关闭的(我确实知道批次问题的平均值,这不是我要说的)。

所以我尝试实施另一个指标:

def p1(y_true, y_pred):
    return K.sum(y_true)
Run Code Online (Sandbox Code Playgroud)

只是为了看看会发生什么......我希望看到一个直线图,其中1包含我的数据集中的's数量(我正在研究一个有binary_crossentropy损失的二元分类问题)。

因为 Keras 将自定义指标计算为每批结果的平均值,如果我有一个大小为 32 的批处理,我希望这个p1指标返回 16,但我得到了 15。如果我使用一个大小为 16 的批处理,我得到接近 7.9 的东西。那是我尝试使用该fit方法的时候。

我还在训练模型后手动计算了验证精度,它确实给了我一个与我val_precision从历史上看到的最后一个不同的数字。那是使用fir_generator,在这种情况下batch_size没有提供,所以我假设它一次计算整个验证数据集的度量。

另一个重要的细节是,当我使用相同的数据集进行训练和验证时,即使我在最后一个时期获得相同的真阳性和预测阳性的数字,训练和验证精度也不同(1 和 0.6)。

true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
Run Code Online (Sandbox Code Playgroud)

显然 32.0 / (32.0 + K.epsilon()) = 0.6000000238418579

知道出了什么问题吗?

可能有帮助的东西:

在此处输入图片说明

def p1(y_true, y_pred):
    true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
    return 1.0 / (true_positives …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow tensorflow2.0

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

为什么在运行 PyTorch 模型时 [使用足够的 GPU 内存] 会导致 CUDA 内存不足?

我问这个问题是因为我在带有 8GB VRAM 的笔记本电脑上成功地在我的 GTX 2070 上训练了一个分段网络,并且我使用完全相同的代码和完全相同的软件库安装在我的带有 GTX 1080TI 的台式机上,但它仍然抛出记忆。

为什么会发生这种情况,考虑到:

  1. 相同的 Windows 10 + CUDA 10.1 + CUDNN 7.6.5.32 + Nvidia Driver 418.96(与 CUDA 10.1 一起提供)在笔记本电脑和 PC 上。

  2. 使用 TensorFlow 2.3 进行训练在我 PC 上的 GPU 上运行流畅,但它无法为仅使用 PyTorch 进行训练分配内存。

  3. PyTorch 通过以下命令识别 GPU(打印 GTX 1080 TI): print(torch.cuda.get_device_name(0))

  4. PyTorch 在运行此命令时分配内存: torch.rand(20000, 20000).cuda() #allocated 1.5GB of VRAM.

解决这个问题的方法是什么?

python out-of-memory tensorflow pytorch

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