【发布时间】:2018-04-23 06:24:37
【问题描述】:
我正在尝试使用tflearn 提供的 DNN 训练一些数据。我的data 变量的形状为(6605, 32),我的labels 数据的形状为(6605,),我在下面将其整形为(6605, 1)...
# Target label used for training
labels = np.array(data[label], dtype=np.float32)
# Reshape target label from (6605,) to (6605, 1)
labels = tf.reshape(labels, shape=[-1, 1])
# Data for training minus the target label.
data = np.array(data.drop(label, axis=1), dtype=np.float32)
# DNN
net = tflearn.input_data(shape=[None, 32])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 1, activation='softmax')
net = tflearn.regression(net)
# Define model.
model = tflearn.DNN(net)
model.fit(data, labels, n_epoch=10, batch_size=16, show_metric=True)
运行后出现两个错误,第一个是...
ValueError: Tensor conversion requested dtype int64 for Tensor with dtype int32: 'Tensor("strided_slice/stack_4:0", shape=(1,), dtype=int32)'
第二个错误是……
在处理上述异常的过程中,又发生了一个异常:
TypeError: 'StridedSlice' Op 的输入 'strides' 的 int32 类型与参数 'begin' 的 int64 类型不匹配。
我不知道如何解决这个问题。所以我采取的一种方法是将dtype 的labels 和data 更改为int64...
# Target label used for training
labels = np.array(data[label], dtype=np.int64)
# Reshape target label from (6605,) to (6605, 1)
labels = tf.reshape(labels, shape=[-1, 1])
# Data for training minus the target label.
data = np.array(data.drop(label, axis=1), dtype=np.int64)
但如果我这样做,我仍然会遇到同样的错误。我该如何解决这个问题?
【问题讨论】:
-
你升级到哪个版本的tensorflow?
标签: python-3.x machine-learning tensorflow neural-network tflearn