【发布时间】:2016-04-08 11:05:50
【问题描述】:
我目前正在研究一个神经网络来玩石头剪刀布,但我遇到了一个大问题。
我让神经网络根据三个动作的历史预测接下来会发生什么,其中人类的每一个动作,在一个数组中创建一个新列表,其中包含前两个动作和新的。然后神经网络训练并从中学习。我的代码可以在下面找到。
#add new situation, with what is currently happening to make current prediction with adjusted weights
current_turn = np.array([[input_data[len(input_data) - 1][1], input_data[len(input_data) - 1][2], output_data[len(output_data) - 1][0]]])
np.append(input_data, current_turn, axis = 0)
我正在使用 Python 系统 NumPy,它拒绝附加这两个数组,这样神经网络就不会学习。
编辑:其中一个响应认识到必须将数组重新分配给这个新添加的数组。当我稍后尝试时,如下所示,它再次不起作用。
if human_choice == "r":
output_data = np.append(output_data, ([0]))
elif human_choice == "p":
output_data = np.append(output_data, ([0.5]))
elif human_choice == "s":
output_data = np.append(output_data, ([1]))
有没有更好的方法来加入这些数组以便算法可以学习?
注意:“追加”没有出现任何错误,但似乎没有完成它的工作。
【问题讨论】:
-
如果您知道问题与附加数组有关,您能否将您的问题归结为一个与此相关的示例? CBA 涉足大量高度特定于神经网络/石头剪刀布上下文的代码
-
@jez 绝对。我已经做出改变了。
-
您正在尝试使用
append,就好像它是一个列表方法一样。但是np.append不是一种方法,也不能“就地”工作。这只是调用np.concatenate的另一种方式。