【问题标题】:UnimplementedError: Graph execution error: running nn on tensorflowUnimplementedError:图形执行错误:在 tensorflow 上运行 nn
【发布时间】:2022-06-18 05:52:41
【问题描述】:

我一直有这个错误,我不知道为什么,特别是因为我完全遵循某人的代码并且该人在运行时没有错误

img_shape = (128,128,3)

# load pretrained model
base_model = tf.keras.applications.VGG19(input_shape=img_shape, include_top=False, weights='imagenet')

# freezing the model
base_model.trainable = False

#define the custom head for network
global_average_layer = tf.keras.layers.GlobalAveragePooling2D()(base_model.output)

# output / prediction layer
prediction_layer = tf.keras.layers.Dense(units=1, activation='sigmoid')(global_average_layer)

model = tf.keras.models.Model(inputs=base_model.input, outputs=prediction_layer)

# compile the model
opt = tf.keras.optimizers.RMSprop(learning_rate=0.0001)
model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy'])

# create data generators
# import library
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# define objects
data_gen_train = ImageDataGenerator(rescale=1/255.0)
data_gen_test = ImageDataGenerator(rescale=1/255.0)

# define variables
train_generator = data_gen_train.flow_from_directory(directory=training_dir, target_size=(128,128), batch_size=128, class_mode='binary')
test_generator = data_gen_test.flow_from_directory(directory=test_dir, target_size=(128,128), batch_size=128, class_mode='binary')

model.fit_generator(generator=train_generator, epochs=5, validation_data=test_generator)

这是我遇到的错误

/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:1: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.
  """Entry point for launching an IPython kernel.
Epoch 1/5
---------------------------------------------------------------------------
UnimplementedError                        Traceback (most recent call last)
<ipython-input-46-18b18ca5977c> in <module>()
----> 1 model.fit_generator(generator=train_generator, epochs=5, validation_data=test_generator)

2 frames
/usr/local/lib/python3.7/dist-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, validation_freq, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
   2221         use_multiprocessing=use_multiprocessing,
   2222         shuffle=shuffle,
-> 2223         initial_epoch=initial_epoch)
   2224 
   2225   @doc_controls.do_not_generate_docs

/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py in error_handler(*args, **kwargs)
     65     except Exception as e:  # pylint: disable=broad-except
     66       filtered_tb = _process_traceback_frames(e.__traceback__)
---> 67       raise e.with_traceback(filtered_tb) from None
     68     finally:
     69       del filtered_tb
/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     53     ctx.ensure_initialized()
     54     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 55                                         inputs, attrs, num_outputs)
     56   except core._NotOkStatusException as e:
     57     if name is not None:

UnimplementedError: Graph execution error:

Detected at node 'model/block1_conv1/Conv2D' defined at (most recent call last):
    File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
      "__main__", mod_spec)

我无法在最后输入完整的错误,但是 请问,谁能告诉我怎么回事

【问题讨论】:

    标签: tensorflow keras deep-learning gpu image-classification


    【解决方案1】:

    train_generator 很旧,你可以使用它。

    这是关于您创建矩阵初始操作的内存,这将减少工作负载并在数据大小上表现良好。

    [示例]:

    import os
    from os.path import exists
    
    import tensorflow as tf
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    : Variables
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    img_shape = (128,128,3)
    BATCH_SIZE = 1
    IMG_SIZE = (128, 128)
    
    database_buffer = "F:\\models\\buffer\\" + os.path.basename(__file__).split('.')[0] + "\\TF_DataSets_01.h5"
    database_buffer_dir = os.path.dirname(database_buffer)
    
    if not exists(database_buffer_dir) : 
        os.mkdir(database_buffer_dir)
        print("Create directory: " + database_buffer_dir)
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    : DataSets
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    PATH = 'F:\\datasets\\downloads\\cats_name'
    train_dir = os.path.join(PATH, 'train')
    validation_dir = os.path.join(PATH, 'validation')
    
    train_dataset = tf.keras.utils.image_dataset_from_directory(train_dir,
                                                                            shuffle=True,
                                                                            batch_size=BATCH_SIZE,
                                                                            image_size=IMG_SIZE)
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    : Model Initialize
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    # load pretrained model
    base_model = tf.keras.applications.VGG19(input_shape=img_shape, include_top=False, weights='imagenet')
    
    # freezing the model
    base_model.trainable = False
    
    #define the custom head for network
    global_average_layer = tf.keras.layers.GlobalAveragePooling2D()(base_model.output)
    
    # output / prediction layer
    prediction_layer = tf.keras.layers.Dense(units=1, activation='sigmoid')(global_average_layer)
    
    model = tf.keras.models.Model(inputs=base_model.input, outputs=prediction_layer)
    model.summary()
    
    # compile the model
    opt = tf.keras.optimizers.RMSprop(learning_rate=0.0001)
    model.compile(optimizer=opt, loss='binary_crossentropy', metrics=['accuracy'])
    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    : Training
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""
    history = model.fit( train_dataset, batch_size=100, epochs=50 )
    

    [输出]:

    【讨论】:

    • 嗨。我尝试这样做,但仍然收到非常相似的图形执行错误消息。我认为这与 Google Colab 有关吗?这就是我想要运行它的原因
    • python 直接在 WIndows 操作系统中运行,但在 Google Colab 中应该可以正常运行。
    【解决方案2】:

    我收到一条非常相似的错误消息,我有 720x720 的图像,但无法弄清楚如何将 ImageData Generator 拟合到 CNN 模型上。我有 49 个不同的标签,如果有人对如何将 imagedatagenerator 数据集传递给 model.fit() 方法有答案,请告诉我。谢谢。

    【讨论】:

    猜你喜欢
    • 2022-07-12
    • 2022-09-24
    • 2022-06-13
    • 2022-07-20
    • 1970-01-01
    • 2023-01-24
    • 2023-01-16
    • 1970-01-01
    • 2016-11-13
    相关资源
    最近更新 更多