我检查了所有解决方案,但我仍面临同样的错误。我的训练图像形状是(26721,32,32,1),我相信它是4维,但我不知道为什么错误显示它是5维。
model = Sequential()
model.add(Convolution2D(16, 5, 5, border_mode='same',
input_shape= input_shape ))
所以这就是我定义model.fit_generator
的方式 model.fit_generator(train_dataset, train_labels, nb_epoch=epochs, verbose=1,validation_data=(valid_dataset, valid_labels), nb_val_samples=valid_dataset.shape[0],callbacks=model_callbacks)
任何人都可以帮我这个吗?
答案 0 :(得分:15)
问题是input_shape
。
它实际上只应包含3个维度。内部keras将添加批量维度,使其成为4.
由于您可能使用了input_shape
4维(包括批量),因此keras正在添加第5个维度。
您应该使用input_shape=(32,32,1)
。
答案 1 :(得分:4)
为重塑数据,我们需要添加第四维,即从(6000,28,28)
更改为(6000,28,28,1)
我的代码是:
img_rows=x_train[0].shape[0]
img_cols=x_test[0].shape[1]
X_train=x_train.reshape(x_train.shape[0],img_rows,img_cols,1)
X_test=x_test.reshape(x_test.shape[0],img_rows,img_cols,1)
Input_shape=(img_rows,img_cols,**). *-> I forgot to put 1 here.
我遇到了同样的问题
Input 0 is incompatible with layer conv2d_4 : except ndim=4 ,found ndim=3
我通过简单地将值放在输入形状中来解决了这个问题
Input_shape=(img_rows,img_cols,1)#store the shape of single image.
解决了这个问题
答案 2 :(得分:1)
你可以使用:
train_dataset= train_dataset.reshape(-1,32,32,1)
现在你可以在算法中使用 input_shape(32,32,1)。
答案 3 :(得分:0)
问题出在input_shape
上。尝试添加额外的尺寸/通道,以使keras知道您正在处理灰度图像,即-> {1
input_shape= (56,56,1)
。
也许,如果您使用的是普通的深度学习模型,那么它不会引起任何问题,但对于Convnet来说,确实会。
答案 4 :(得分:0)
这里,每当CNN用作2d时,您都需要检查“ channels_first” ,此外,您还要将train_data和test数据重塑为:
<table class="table table-striped">
<thead class="bg-secondary text-white">
<tr>
<th colspan="3"><h1 class="text-center"><strong>Tag List</strong></h1></th>
</tr>
<tr>
<th colspan="1">Tag</th>
<th colspan="1">Related Posts</th>
<th class="text-center" colspan="1">Actions</th>
</tr>
</thead>
<tbody>
{% for tag in tag_list %}
<tr>
<td colspan="1">{{ tag.tag_name }}</td>
<td colspan="1"><a href="{{ tag.get_absolute_url }}">{{ tag.tag_blogpost.count }}</a></td>
<td colspan="1">
<div class="row justify-content-md-center">
<a class="btn btn-success btn-sm mx-1" href="{% url 'update_tag' slug_tag=tag.slug_tag %}">Update</a>
<button class="btn btn-danger btn-sm mx-1" type="button" data-toggle="modal" data-target="#deleteModal">Delete</button>
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title text-center" id="deleteModalLabel">Delete Request</h2>
</div>
<div class="modal-body">
<h3>Are you sure to delete this tag?</h3>
<h1 class="py-4"><em><strong>{{ tag.tag_name }}</strong></em></h1>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary btn-sm" data-dismiss="modal">No, don't do this</button>
<form action="{% url 'delete_tag' slug_tag=tag.slug_tag %}" method="POST">
{% csrf_token %}
<button class="btn btn-danger btn-sm" type="submit" name="button">Yes, delete it</button>
</form>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
答案 5 :(得分:0)
我遇到了同样的问题
输入0与conv2d_4层不兼容:除了ndim = 4之外,找到ndim = 3
我通过简单地将值放在输入形状中来解决了这个问题
Input_shape=(img_rows,img_cols,1)#store the shape of single image. .. & the problem is solved