我试图在24种元素的化学成分矩阵上使用一个简单的NN,总共270次分析(25X270,包括标签(。然而,当我运行梯度下降时,它显示错误"numpy.foat64"对象不能被解释为整数。
data = np.array(data)
m, n = data.shape
np.random.shuffle(data)
data_dev = data[0:60].T
Y_dev = data_dev[0]
Y_dev = np.array(Y_dev, dtype=np.float_)
X_dev = data_dev[1:n]
X_dev = preprocessing.normalize(X_dev)
data_train = data[60:m].T
Y_train = data_train[0]
Y_train = np.array(Y_train, dtype=np.float_)
X_train = data_train[1:n]
X_train = preprocessing.normalize(X_train)
_,m_train = X_train.shape
在此处输入图像描述
在此处输入图像描述
这是我得到的错误:在此处输入图像描述
我尝试过MNIST数据集的代码(将第一个W1的结构更改为10784,并将每个像素数据除以255以避免任何冲突(,它运行良好。我还检查了数组的数据类型,结果是一样的(float64(。我不知道为什么我的数据有问题。
Y
数组的类型是什么?
如果它是float64
,那么问题是Y.max((返回浮点值,但在定义数组大小时需要整数。所以你需要改变:
Y = np.array([1, 2, 3], np.float64)
one_hot_Y = np.zeros((Y.size, Y.max() + 1)) # will not work
至
one_hot_Y = np.zeros((Y.size, int(Y.max()) + 1))
或者将Y
的类型转换为int:Y.astype(int)