- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 CNN 来使用 Tensorflow 和 Keras 进行对象检测。我对此相当陌生,所以我使用教程作为指南,但有我自己的设置和其他一些东西。我得到的错误是 Tensorflow 的形状与 [x,2] 与 [x] 不兼容,其中 x 是我拥有的任意数量的训练图像,2 是类的数量。我使用少量图像只是为了测试,但我很确定这不是问题?
我尝试了不同倍数的训练图像,但没有成功,并且我查看了 model.summary() 以查看模型是否完全按照我想要的方式布局。另外,我还打印了训练图像的形状及其标签,它们看起来是正确的。
图像大小为 28 x 28 像素,平面大小为 784,完整形状为 (28,28,1),1 是 channel 数(灰度)。我只有两个类,总共只有 10 张训练图像(如果这被认为是问题所在,我可以得到更多)。
model = Sequential()
model.add(InputLayer(input_shape=(img_size_flat,)))
model.add(Reshape(img_shape_full))
model.add(Conv2D(kernel_size=5, strides=1, filters=16, padding='same',
activation='relu', name='layer_conv1'))
model.add(MaxPooling2D(pool_size=2, strides=2))
model.add(Conv2D(kernel_size=5, strides=1, filters=36, padding='same',
activation='relu', name='layer_conv2'))
model.add(MaxPooling2D(pool_size=2, strides=2))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
from tensorflow.python.keras.optimizers import Adam
optimizer = Adam(lr=1e-3)
model.compile(optimizer=optimizer,
loss='categorical_crossentropy',
metrics=['accuracy'])
from tensorflow.python.keras.utils import to_categorical
model.fit(x=data.train,
y=to_categorical(data.train_labels),
batch_size=128, epochs=1)
我在标签上使用 to_categorical() 只是因为它们以某种方式转换为整数。我检查了它们是否保留了正确的值等。
我打印了模型摘要以检查布局:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
reshape (Reshape) (None, 28, 28, 1) 0
_________________________________________________________________
layer_conv1 (Conv2D) (None, 28, 28, 16) 416
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 14, 14, 16) 0
_________________________________________________________________
layer_conv2 (Conv2D) (None, 14, 14, 36) 14436
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 7, 7, 36) 0
_________________________________________________________________
flatten (Flatten) (None, 1764) 0
_________________________________________________________________
dense (Dense) (None, 128) 225920
_________________________________________________________________
dense_1 (Dense) (None, 2) 258
=================================================================
Total params: 241,030
Trainable params: 241,030
Non-trainable params: 0
_________________________________________________________________
None
我打印了 numpy 数据的大小:
print(data.train.shape)
print(data.train_labels.shape)
打印内容
(10, 784) #This is the shape of the images
(10, 2) #This is the shape of the labels
错误:
2019-04-08 10:46:40.239226: I tensorflow/stream_executor/dso_loader.cc:152] successfully opened CUDA library cublas64_100.dll locally
Traceback (most recent call last):
File "C:/Users/bunja/Dev/testCellDet/project/venv/main.py", line 182, in <module>
batch_size=128, epochs=1)
File "C:\Users\bunja\Miniconda3\lib\site-packages\tensorflow\python\keras\engine\training.py", line 880, in fit
validation_steps=validation_steps)
File "C:\Users\bunja\Miniconda3\lib\site-packages\tensorflow\python\keras\engine\training_arrays.py", line 329, in model_iteration
batch_outs = f(ins_batch)
File "C:\Users\bunja\Miniconda3\lib\site-packages\tensorflow\python\keras\backend.py", line 3076, in __call__
run_metadata=self.run_metadata)
File "C:\Users\bunja\Miniconda3\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
run_metadata_ptr)
File "C:\Users\bunja\Miniconda3\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__
c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [10,2] vs. [10]
[[{{node metrics/acc/Equal}}]]
[[{{node loss/mul}}]]
可以看出,摘要显示dense_1 的输出形状为(None, 2)。这是我遇到问题的地方吗,因为我有不兼容形状的错误:[x,2] vs. [x]?我检查了我最初用来学习这些东西的教程,发现没有重大差异。我对此仍然很陌生,所以可能有点小,而且我可能会丢失一些信息,所以如果您有任何疑问,请询问。谢谢!!!!
额外信息:
GPU:GeForce GTX 1080 主要:6 次要:1 内存时钟频率(GHz):1.7335
tensorflow 版本:1.13.1
Python版本:Python 3.7.3
以下是对 to_categorical 形状进行注释的代码:
print(data.train_labels.shape)
print()
print(to_categorical(data.train_labels).shape)
输出:
(10, 2)
(10, 2, 2)
我感觉这可能是我错误的根源?但我不知道如何解决它......
最佳答案
to_categorical
通常用于当您拥有列表格式的标签并且需要执行 one-hot
编码以将其转换为正确的形状以供输入时在训练期间将其传递给模型。
但就您而言,您的标签已经与您在模型中定义的形状相同,因此不需要 one-hot
编码。
您可以将 None
查看为 batch_size
,这将使您更清楚地了解数据如何从输入转换为输出。
谢谢!
关于python-3.x - tensorflow (使用 Keras)中出现 'InvalidArgumentError: Incompatible shapes: [10,2] vs. [10]' 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55574929/
我的应用程序从一个有 5 个选项卡的选项卡栏 Controller 开始。一开始,第一个出现了它的名字,但其他四个没有名字,直到我点击它们。然后根据用户使用的语言显示名称。如何在选项卡栏出现之前设置选
我有嵌套数组 json 对象(第 1 层、第 2 层和第 3 层)。我的问题是数据表没有出现。任何相关的 CDN 均已导入。该表仅显示部分。我引用了很多网站,但都没有解决我的问题。 之前我使用标准表来
我正在尝试设置要显示的 Parse PFLoginViewController。这是我的一个 View Controller 的类。 import UIKit import Parse import
我遇到了这个问题,我绘制的对象没有出现在 GUI 中。我知道它正在被处理,因为数据被推送到日志文件。但是,图形没有出现。 这是我的一些代码: public static void main(Strin
我有一个树状图,其中包含出现这样的词...... TreeMap occurrence = new TreeMap (); 字符串 = 单词 整数 = 出现次数。 我如何获得最大出现次数 - 整数,
因此,我提示用户输入变量。如果变量小于 0 且大于 10。如果用户输入 10,我想要求用户再次输入数字。我问时间的时候输入4,它说你输入错误。但在第二次尝试时效果很好。例如:如果我输入 25,它会打印
我已经用 css overflow 属性做了一个例子。在这个例子中我遇到了一个溢出滚动的问题。滚动条出现了,但没有工作意味着每当将光标移动到滚动条时,在这个滚动条不活动的时间。我对此一无所知,所以请帮
我现在正在做一个元素。当您单击一个元素时,会出现以下信息,我想知道如何在您单击下一个元素而不重新单击同一元素时使其消失....例如,我的元素中有披萨,我想单击肉披萨看到浇头然后点击奶酪披萨看到浇头和肉
我有一个路由器模块,它将主题与正则表达式进行比较,并将出现的事件与一致的键掩码链接起来。 (它是一个简单的 url 路由过滤,如 symfony http://symfony.com/doc/curr
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: mysql_fetch_array() expects parameter 1 to be resource, bo
我在底部有一个带有工具栏的 View ,我正在使用 NavigationLink 导航到该 View 。但是当 View 出现时,工具栏显示得有点太低了。大约半秒钟后,它突然跳到位。它只会在应用程序启
我试图在我的应用程序上为背景音乐添加一个 AVAudioPlayer,我正在主屏幕上启动播放器,尝试在应用程序打开时开始播放但出现意外行为... 它播放并立即不断创建新玩家并播放这些玩家,因此同时播放
这是获取一个数字,获取其阶乘并将其加倍,但是由于基本情况,如果您输入 0,它会给出 2 作为答案,因此为了绕过它,我使用了 if 语句,但收到错误输入“if”时解析错误。如果你们能提供帮助,我真的很感
暂停期间抛出异常 android.os.DeadObjectException 在 android.os.BinderProxy.transactNative( native 方法) 在 androi
我已经为猜词游戏编写了一些代码。它从用户输入中读取字符并在单词中搜索该字符;根据字符是否在单词中,程序返回并控制一些变量。 代码如下: import java.util.Random; import
我是自动化领域的新手。这是我的简单 TestNG 登录代码,当我以 TestNG 身份运行该代码时,它会出现 java.lang.NullPointerException,双击它会突出显示我导航到 U
我是c#程序员,我习惯了c#的封装语法和其他东西。但是现在,由于某些原因,我应该用java写一些东西,我现在正在练习java一天!我要创建一个为我自己创建一个虚拟项目,以便让自己更熟悉 Java 的
我正在使用 Intellij,我的源类是 main.com.coding,我的资源文件是 main.com.testing。我将 spring.xml 文件放入资源文件中。 我的测试类位于 test.
我想要我的tests folder separate到我的应用程序代码。我的项目结构是这样的 myproject/ myproject/ myproject.py moduleon
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 6 年前。 因此,我尝试比较 2 个值,一个
我是一名优秀的程序员,十分优秀!