【发布时间】:2020-10-18 06:57:44
【问题描述】:
我在使用 TensorFlow 时遇到了关于数据生成器迭代器的问题。我想使用顺序模型,并从数据框创建了数据框数据生成器。现在我想训练顺序模型并将这个数据生成器作为输入应用到它,现在我面临属性错误。
有什么办法可以解决这个错误。
这是我使用 Keras 的图像生成器的方法:
datagen = ImageDataGenerator()
data = datagen.flow_from_dataframe(
dataframe=dataSet,
directory=None,
x_col="x_col",
y_col='target',
weight_col=None,
target_size=(28, 28),
color_mode="rgb",
classes=None,
class_mode="raw",
batch_size=32,
shuffle=True,
)
这是我的模型:
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(28, (3,3), padding='same', input_shape=(32,32,3)))
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(512))
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dense(2, activation='softmax'))
这是我编译模型的方式:
model.compile(optimizer='sgd', loss="categorical_crossentropy", metrics=["accuracy"])
我称这个模型为:
model.fit_generator(generator=data, epochs=10, verbose=1)
我的错误是:
AttributeError:在用户代码中:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py:576 _reset_compile_cache *
self._compiled_trainable_state = self._get_trainable_state()
AttributeError: 'OwnedIterator' object has no attribute '_get_trainable_state'
【问题讨论】:
-
我的猜测是
data不适合传递给generator。但是我们看不到您是如何创建data的,也看不到整个错误消息,因此无法判断。同时,您阅读过文档吗? -
如果您想查看数据,我可以编辑问题。还有生成器,这样你就可以看到我是如何创建数据生成器的。 @KarlKnechtel
-
@KarlKnechtel 我用数据生成器模型更新了问题。你能告诉我我做错了什么吗?而且是的,我现在指的是文档。
-
@yashChoksi - 你能解决上述错误吗?
-
是的,我解决了这个错误。 @普拉奇
标签: python tensorflow machine-learning gpu data-science