【问题标题】:Keras (R) error while executing fit generator执行拟合生成器时出现 Keras (R) 错误
【发布时间】:2018-05-09 11:14:10
【问题描述】:

我在 R 中使用 fit_generator 时出错... 这是我的代码..`

model <- keras_model_sequential()

model %>%
  layer_conv_2d(32, c(3,3), input_shape = c(64, 64, 3)) %>%
  layer_activation("relu") %>%
  layer_max_pooling_2d(pool_size = c(2,2)) %>%
  layer_conv_2d(32, c(3, 3)) %>%
  layer_activation("relu") %>%
  layer_max_pooling_2d(pool_size = c(2, 2)) %>%
  layer_flatten() %>%
  layer_dense(128) %>%
  layer_activation("relu") %>%
  layer_dense(128) %>%
  layer_activation("relu") %>%
  layer_dense(2) %>%
  layer_activation("softmax")

opt <- optimizer_adam(lr = 0.001, decay = 1e-6)

model %>%
  compile(loss = "categorical_crossentropy", optimizer = opt, metrics = "accuracy")

train_gen <- image_data_generator(rescale = 1./255,
                                  shear_range = 0.2,
                                  zoom_range = 0.2,
                                  horizontal_flip = T)

test_gen <- image_data_generator(rescale = 1./255)

train_set = train_gen$flow_from_directory('dataset/training_set',
                                          target_size = c(64, 64),
                                          class_mode = "categorical")

test_set = test_gen$flow_from_directory('dataset/test_set',
                                        target_size = c(64, 64),
                                        batch_size = 32,
                                        class_mode = 'categorical')

model$fit_generator(train_set,
                    steps_per_epoch = 50,
                    epochs = 10)

错误: py_call_impl(callable, dots$args, dots$keywords) 中的错误: StopIteration: 'float' 对象不能被解释为整数

如果我设置验证集,它也会出现另一个错误 布尔(验证数据)。浮动错误..

【问题讨论】:

    标签: r keras convolutional-neural-network


    【解决方案1】:

    如果没有最小的可重复示例,很难帮助您。

    我猜你在尝试运行时会收到此错误

    train_set = train_gen$flow_from_directory('dataset/training_set',
                                              target_size = c(64, 64),
                                              class_mode = "categorical")
    

    在这里,您使用reticulate 而不是keras(R 包)包装器自己调用python 函数。这可能有效,但您必须更明确地了解类型并使用 target_size = as.integer(c(64, 64)),因为 python 需要一个整数。

    或者,我建议查看keras 包中包含的flow_images_from_directory() 函数。


    同样的道理

    model$fit_generator(train_set,
                        steps_per_epoch = 50,
                        epochs = 10)
    

    我建议调查一下

    model %>% 
      fit_generator()
    

    而是,它是keras 包的一部分。

    【讨论】:

    • 它工作了......但我现在有一个新错误.. CUBLAS_STATUS_ALLOC_FAILED
    • 尝试使用我提到的keras函数(flow_images_from_directory()model %&gt;% fit_generator()
    • 我在 model%>% fit_generator() 中使用了它 flow_images_from_directory 之后我得到了这个新错误 CUBLAS_STATUS_ALLOC_FAILED 看起来像 Cuda 问题,但 Keras 虽然在 Python 中工作..
    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多