我试图弄清楚如何用Keras创建模型。为了帮助我,我在组装模型时利用plot_model
来可视化模型。该程序只是组装一个顺序模型并使用plot_model
导出它。
一切正常,直到我尝试向模型中添加批归一化(BN)层。
程序突然尝试添加GPU设备并冻结。我被迫通过任务管理器关闭程序
我正在Windows 10中运行它。Python 3.6版。 Tensorflow-gpu版本1.12.0。 Keras版本2.2.4
我认为我是从错误的库中导入的,所以我尝试直接引用它。它没有改变任何东西。我尝试过咨询BN层的不同实现,并且它们似乎都以与我毫无问题的相同方式实现了它们。
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, BatchNormalization, LeakyReLU, Activation
import keras
import os
encoder = Sequential()
encoder.add(Conv2D(64, (7,7),strides=(2,2), input_shape=(256, 256,3)))
encoder.add(keras.layers.BatchNormalization())
encoder.add(LeakyReLU())
encoder.add(Conv2D(64, 3, strides=3, padding='same'))
from keras.utils import plot_model
plot_model(encoder, to_file='model.png', show_shapes=True)
print ('done')
当我运行程序时,它挂在以下输出:I:tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
上,从不输出“完成”消息。 plot_model
图像也不会导出。
上面的消息也很不寻常,因为在将其他任何一层添加到编码器时都不会出现。
答案 0 :(得分:1)
尝试将TensorFlow降级到1.9版本。
如果这不起作用,请卸载Keras(及其应用程序和预处理)。
然后,在您的代码中,将所有导入从 keras.models 修改为 tensorflow.keras.models ;换句话说,您所做的每个导入都通过