小编Tim*_*lin的帖子

将 keras fit/fit_generator 与 max_queue_size、workers 和 use_multiprocessing 一起使用

我对如何使用max_queue_size,workers感到use_multiprocessing困惑Keras 文档

有人可以举个例子,说明如果您有的话,您将如何使用它们

  • 1xGPU(Nvidia Quadro p1000)
  • 6核CPU,12个逻辑处理器

以下是我根据对这三个字段的不科学猜测来使用它的方法。

classifier.fit_generator(training_set,
                         steps_per_epoch = 8000,
                         epochs = 25,
                         validation_data = test_set,
                         validation_steps = 2000/32,
                         max_queue_size = 10,
                         use_multiprocessing = False,
                         workers=1)
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras tensorflow

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

GPU 上的 Tensorflow 比 CPU 上的慢

使用带有 Tensorflow 后端的 Keras,我试图训练一个 LSTM 网络,在 GPU 上运行它比在 CPU 上运行它需要更长的时间。

我正在使用 fit_generator 函数训练 LSTM 网络。每个 epoch 需要 CPU 约 250 秒,而每个 epoch 需要 GPU 约 900 秒。我的 GPU 环境中的包包括

keras-applications        1.0.8                      py_0    anaconda
keras-base                2.2.4                    py36_0    anaconda
keras-gpu                 2.2.4                         0    anaconda
keras-preprocessing       1.1.0                      py_1    anaconda
...
tensorflow                1.13.1          gpu_py36h3991807_0    anaconda
tensorflow-base           1.13.1          gpu_py36h8d69cac_0    anaconda
tensorflow-estimator      1.13.0                     py_0    anaconda
tensorflow-gpu            1.13.1                   pypi_0    pypi
Run Code Online (Sandbox Code Playgroud)

我的 Cuda 编译工具是 9.1.85 版本,我的 CUDA 和驱动程序版本是

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.67       Driver Version: 418.67       CUDA Version: 10.1     | …
Run Code Online (Sandbox Code Playgroud)

gpu keras tensorflow tensorflow2.x

4
推荐指数
1
解决办法
1315
查看次数

AttributeError: 模块“tensorflow_core.compat.v1”没有属性“contrib”

x = tf.placeholder(dtype = tf.float32, shape = [None, 28, 28])
y = tf.placeholder(dtype = tf.int32, shape = [None])
images_flat = tf.contrib.layers.flatten(x)
logits = tf.contrib.layers.fully_connected(images_flat, 62, tf.nn.relu)
loss = 
tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits( 
   labels = y, logits = logits))
   train_op = 
   tf.train.AdamOptimizer(learning_rate=0.001).minimize(loss)
   correct_pred = tf.argmax(logits, 1)
   accuracy = tf.reduce_mean(tf.cast(correct_pred, 
   tf.float32))

   print("images_flat: ", images_flat)
   print("logits: ", logits)
   print("loss: ", loss)
   print("predicted_labels: ", correct_pred)


AttributeError                            Traceback (most recent call last)
<ipython-input-17-183722ce66a3> in <module>
      1 x = tf.placeholder(dtype = tf.float32, shape = [None, 28, 28])
      2 y …
Run Code Online (Sandbox Code Playgroud)

python jupyter tensorflow tensorflow2.0

4
推荐指数
1
解决办法
3万
查看次数

将 model.fit_generator 转换为 model.fit

我有以下代码,

train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
        'data/train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
        'data/validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')
Run Code Online (Sandbox Code Playgroud)

现在model.fit_generator定义如下:

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)
Run Code Online (Sandbox Code Playgroud)

现在model.fit_generator已过时,什么是改变的正确方法model.fit_generator,以model.fit在这种情况下?

keras tensorflow2.0 tensorflow2.x

4
推荐指数
2
解决办法
3247
查看次数

通道优先与通道最后 - 这些是什么意思?

https://software.intel.com/en-us/forums/computer-vision/topic/785538

“问题已经解决了,因为我使用的模型默认使用channels_first进行GPU训练,而OPENVINO需要使用channels_last来进行TF模型。”

这些是什么意思?

我怎样才能改变它们?

我在网上找不到任何对此的进一步参考。

neural-network deep-learning conv-neural-network tensorflow openvino

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

Tensorflow 2 API:名称 tf.get_default_graph 已弃用。请改用 tf.compat.v1.get_default_graph

我是 Tensorflow 的新手,正在 Google Colaboratory 中开发笔记本。

在我的第一台笔记本上,我收到一条消息,要求更新到 Tensorflow v.2。

现在,在另一个笔记本中,我收到以下消息:

名称 tf.get_default_graph 已弃用。请改用 tf.compat.v1.get_default_graph。

如果我这样做,我使用的是 Tensorflow v2 吗?
我很困惑,因为v1in tf.compat.v1.get_default_graph

所有的错误信息是:

警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:66:名称 tf.get_default_graph 已弃用。请改用 tf.compat.v1.get_default_graph。

警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:541:名称 tf.placeholder 已弃用。请改用 tf.compat.v1.placeholder。

警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:4432:名称 tf.random_uniform 已弃用。请改用 tf.random.uniform。

警告:tensorflow:来自 /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:4267:名称 tf.nn.max_pool 已弃用。请改用 tf.nn.max_pool2d。

我想我无法更改 keras 上的代码。

python tensorflow tensorflow2.0

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

Python 迭代布尔变量的所有可能组合

我的字典中有 6 个布尔变量,我想在所有可能的迭代上运行我的代码。所以我有:

params["is_A"] = True/False
params["is_B"] = True/False
...
Run Code Online (Sandbox Code Playgroud)

然后对于所有可能的组合,我想打电话

my_func(params)
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

combinations python-itertools python-3.x

3
推荐指数
1
解决办法
1635
查看次数

如何在tensorflow 2 (tf.keras)中进行空洞卷积

我正在尝试将一些代码从tensorflow 1.x 转换为tensorflow 2.x。到目前为止进展顺利,但我陷入了空洞卷积。与其他层不同,似乎没有一对一的转换。

到目前为止,我已经将所有内容统一到 tf.keras。这里有一个纯 keras 实现和一个 tf.nn.atrous_conv2d 实现,我也不确定是否可以在 tf.keras.Model 功能 api 中使用它们。

这是代码:

with tf.variable_scope('aconv1d_' + name):
        shape = [None, 30, 128]
        kernel = tf.get_variable('kernel', (1, size, shape[-1], n_filters), dtype=tf.float32,
                                 initializer=tf.contrib.layers.xavier_initializer())
        if bias:
            b = tf.get_variable('b', [shape[-1]], dtype=tf.float32, initializer=tf.constant_initializer(0))
        out = tf.nn.atrous_conv2d(tf.expand_dims(input_tensor, dim=1), kernel, rate=rate, padding='SAME') + (
            b if bias else 0)
        out = tf.squeeze(out, [1])

        return out
Run Code Online (Sandbox Code Playgroud)

我只想转换它,将其粘贴到 keras 功能 api 中,执行 model.fit,然后运行。

谢谢你帮助我这样的菜鸟。

machine-learning keras tensorflow tf.keras tensorflow2.0

3
推荐指数
1
解决办法
2387
查看次数

Keras:二值图像分割中的像素类不平衡

我有一个任务,输入图像500x500x1并得到500x500x1二进制分割。500x500工作时,只应触发一小部分(小“目标”)。我在输出处使用 sigmoid 激活。由于希望如此小的分数为正,因此训练往往会因所有输出为零或非常接近而停止。我已经编写了自己的损失函数来部分处理它,但如果可能的话,我想使用带有类权重的二元交叉熵。

我的问题分为两部分:

  1. 如果我天真地将binary_crossentropy损失应用于我的500x500x1输出,它会根据需要应用于每个像素吗?

  2. keras 有没有办法通过每个像素的单个 sigmoid 输出来应用类权重?

deep-learning keras semantic-segmentation

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

Keras --- 在 fit_generator() 期间训练冻结

我正在尝试训练我的 6000 个训练数据集和 1000 个验证数据集,但我有一个问题:程序在训练期间只是冻结和挂起,没有任何错误消息。

1970/6000 [========>.....................] - ETA: 1:50:11 - loss: 1.2256 - accuracy: 0.5956
1971/6000 [========>.....................] - ETA: 1:50:08 - loss: 1.2252 - accuracy: 0.5958
1972/6000 [========>.....................] - ETA: 1:50:08 - loss: 1.2248 - accuracy: 0.5960
1973/6000 [========>.....................] - ETA: 1:50:06 - loss: 1.2245 - accuracy: 0.5962
1974/6000 [========>.....................] - ETA: 1:50:04 - loss: 1.2241 - accuracy: 0.5964
1975/6000 [========>.....................] - ETA: 1:50:02 - loss: 1.2243 - accuracy: 0.5961
1976/6000 [========>.....................] - ETA: 1:50:00 - loss: 1.2239 - …
Run Code Online (Sandbox Code Playgroud)

python keras keras-layer keras-2 tf.keras

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

绘图模型不显示模型层,仅显示模型名称

我正在尝试使用 TensorFlow2 构建一些模型,因此我创建了一个模型类,如下所示:

import tensorflow as tf

class Dummy(tf.keras.Model):
    def __init__(self, name="dummy"):
        super(Dummy, self).__init__()
        self._name = name

        self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
        self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)

    def call(self, inputs, training=False):
        x = self.dense1(inputs)
        return self.dense2(x)

model = Dummy()
model.build(input_shape=(None,5))
Run Code Online (Sandbox Code Playgroud)

现在我想绘制模型,同时使用summary()返回我期望的内容,plot_model(model, show_shapes=True, expand_nested=True)仅返回带有模型名称的块。

如何返回模型的图表?

python python-3.x keras tensorflow tensorflow2.x

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

为什么验证损失和准确性波动如此之大?

我目前正在训练 CNN 来检测一个人是否戴口罩。不幸的是,我不明白为什么我的验证损失如此之高。正如我注意到的,我正在验证的数据是在类之后排序的(这是网络的输出)。这对我的验证准确性和损失有影响吗?我使用计算机视觉测试了该模型,效果非常好,但验证损失和准确性看起来仍然非常错误。其原因何在?

训练和验证损失 训练和验证准确性

validation machine-learning deep-learning conv-neural-network tensorflow

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

如何修复 Keras 中的名称“嵌入未定义”

我正在从《使用Python进行深度学习》一书中学习Keras。我试图实现与书中提到的关于嵌入层的实现相同的内容。但我收到错误 NameError:名称“嵌入”未定义。我正在使用 Python 3.7 张量流: '1.13.1' keras :'2.2.4'

from keras.models import Sequential                                    

from keras.layers import Flatten, Dense                                

model = Sequential()                                                   

model.add(Embedding(10000, 8 ,input_length= max_len))

              
Run Code Online (Sandbox Code Playgroud)

-------------------------------------------------- ------------------------- ----> 1 model.add(Embedding(10000, 8 ,输入长度= max_len))

NameError:名称“嵌入”未定义

keras python-3.7

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