如何解决尝试在model.fit
# Define paths for image data
train_path = "C:/Users/dancu/PycharmProjects/firstCNN\data/ad-vs-cn/train"
test_path = "C:/Users/dancu/PycharmProjects/firstCNN\data/ad-vs-cn/test"
valid_path = "C:/Users/dancu/PycharmProjects/firstCNN\data/ad-vs-cn/valid"
# Use ImageDataGenerator to create 3 lots of batches
train_batches = ImageDataGenerator(
rescale=1/255).flow_from_directory(directory=train_path,target_size=(256,240),classes=['cn','ad'],batch_size=10,color_mode="rgb")
valid_batches = ImageDataGenerator(
rescale=1/255).flow_from_directory(directory=valid_path,256),color_mode="rgb")
test_batches = ImageDataGenerator(
rescale=1/255).flow_from_directory(directory=test_path,color_mode="rgb")
imgs,labels = next(train_batches)
# Test to see normalisation has occurred properly
print(imgs[1][127])
# Define method to plot MRIs
def plotImages(images_arr):
fig,axes = plt.subplots(1,10,figsize=(20,20))
axes = axes.flatten()
for img,ax in zip( images_arr,axes):
ax.imshow(img)
ax.axis('off')
plt.tight_layout()
plt.show()
# Plot a sample of MRIs
plotImages(imgs)
# Define the model
model = Sequential([
Conv2D(filters=32,kernel_size=(3,3),activation='relu',padding = 'same',input_shape=(256,240,3)),MaxPool2D(pool_size=(2,2),strides=2),Dropout(0.1),Conv2D(filters=64,padding='same'),Dropout(0.2),Conv2D(filters=128,Dropout(0.3),Flatten(),Dense(units=2,activation='softmax')
])
# Summarise each layer of the model
print(model.summary())
# Compile and train the model
model.compile(optimizer=Adam(),loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(x=train_batches,steps_per_epoch=len(train_batches),validation_data=valid_batches,validation_steps=len(valid_batches),epochs=35,verbose=1
)
错误消息:
最终确定GeneratorDataset迭代器时发生错误:失败的先决条件:Python解释器状态未初始化。该过程可以终止。 [[{{node PyFunc}}]]
关于问题可能在这里的任何想法?希望得到您的答复,我对CNN还是很陌生,所以这可能是我所缺少的一个非常明显的问题...
解决方法
刚刚意识到这是因为我的ImageDataGenerator中的所有3个批次之间的输入形状都不相同...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。