我有非常简单的输入:点,并且我试图对它们是否在某个区域中进行分类。因此,我的训练数据是形状的(1000000, 2)
,这是一种形式的数组:
[ [x1,y1], [x2,y2],... ]
我的标签是一类似的形式的(异型(10000, 2)
):
[ [1,0], [0,1], [0,1],... ]
([0,1]
装置的点处于区域中,[1,0]
装置是不)
我的模型是这样建立的:
import tensorflow as tf
from tensorflow import keras
import numpy as np
# Reads the points and labels from .csv format files
train_data = np.genfromtxt('data/train_data.csv', delimiter=',')
train_labels = np.genfromtxt('data/train_labels.csv', delimiter=',')
model = keras.models.Sequential()
model.add(keras.layers.Dense(128, activation='relu', input_shape=(2,)))
model.add(keras.layers.Dense(128, activation='relu'))
model.add(keras.layers.Dense(2, activation='softmax'))
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(train_data, train_labels, epochs=1, batch_size=100, verbose=1) # ERROR
请注意,输入形状为(2,)
,意味着(根据参考)该模型将期望使用形式的数组(*, 2)
。
我收到错误消息:
tensorflow.python.framework.errors_impl.InvalidArgumentError: Can not squeeze dim[1], expected a dimension of 1, got 2
我不知道为什么 有什么建议?
堆栈跟踪:
Traceback (most recent call last):
File "C:/Users/omer/Desktop/Dots/train.py", line 25, in <module>
model.fit(train_data, train_labels, epochs=1, batch_size=100, verbose=1)
File "C:\Users\omer\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\engine\training.py", line 880, in fit
validation_steps=validation_steps)
File "C:\Users\omer\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\engine\training_arrays.py", line 329, in model_iteration
batch_outs = f(ins_batch)
File "C:\Users\omer\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\backend.py", line 3076, in __call__
run_metadata=self.run_metadata)
File "C:\Users\omer\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
run_metadata_ptr)
File "C:\Users\omer\AppData\Local\Programs\Python\Python37\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: Can not squeeze dim[1], expected a dimension of 1, got 2
[[{{node metrics/acc/Squeeze}}]]
您的标签形状错误。请参阅文档:
使用
sparse_categorical_crossentropy
损失时,您的目标应该是 整数
目标。如果您有明确的目标,则应使用categorical_crossentropy
因此,您需要将标签转换为整数:
train_labels = np.argmax(train_labels, axis=1)
问题内容: 我试图用本地图像替换训练和验证数据。但是在运行训练代码时,出现了以下错误: ValueError:无法挤压dim [1],预期尺寸为1,输入形状为[100,3]的’sparse_softmax_cross_entropy_loss / remove_squeezable_dimensions / Squeeze’(op:’Squeeze’)得到3。 我不知道该如何解决。模型定义代码中没
问题内容: 我对(N,)维数组和(N,1)维数组之间的转换有疑问。例如,y是(2,)维。 但是下面将显示y2为(2,1)维。 在不复制的情况下将y2转换回y的最有效方法是什么? 谢谢汤姆 问题答案: 为此工作 还请注意,除非需要复制新形状(在这里不需要这样做),否则它不会复制数据:
问题内容: 运行我的node.js程序时,出现以下错误 问题答案: 您可能会给出这样的错误: 然后,您可以注意到模块或某处的错误。 这是因为您已经更新了节点,所以可能会重建上面找到的模块。 我通过 重新安装 (删除,然后安装)xml2json来表达我的问题。 祝好运!
本文向大家介绍Android拍照得到全尺寸图片并进行压缩,包括了Android拍照得到全尺寸图片并进行压缩的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上代码就是本文给大家介绍的Android拍照得到全尺寸图片并进行压缩 的全部内容,希望大家喜欢。
我正在使用这段代码生成objects,但有时我会遇到这个错误(错误参数#-1到'addBody'(需要代理,得到零))知道为什么吗?
问题内容: 我有这种方法: 我想解析一个JSON: 但是我收到一条错误消息: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:预期为BEGIN_OBJECT,但位于第1行第1列 问题答案: 即使没有看到您的JSON字符串,您也可以从错误消息中得知,它不是要解析为类实例的正确结构。 Gson希望您的JSON字符串