python 中未经训练的具有张量流的神经网络
Neural networks with tensorflow in python without training
我正在用控制 'creatures' 的神经网络制作一个非常基本的人工生命模拟。我已经为我的前几次尝试制作了自己的版本,但收效甚微。我决定暂时使用 TensorFlow(或者任何库都可以)。问题是我想要一种方法来输入输入和权重,并接收输出,而无需网络尝试自我训练(就像我能找到的所有教程和示例中所做的那样。我将在最后包含我自己的代码,所以如果有一个简单的解决方案,那将是最好的,尽管库会使早期测试更容易。
def nn(n, s1, s2):
hidden_layer = []
out = []
tot = 0
for p in range(mid_num):
tot = 0
for u in range(len(n)):
tot += s1[u * mid_num + p] * n[u]
hidden_layer.append(tot)
tot = 0
for p in range(output_num):
for u in range(len(hidden_layer)):
tot += s2[u * output_num + p] * hidden_layer[u]
out.append(round(sigmoid(tot / 53000)))
# print(tot)
tot = 0
# print(out)
return out
如果你希望权重只是常数,所以它们只是矩阵乘法,你可以使用tf.constant
。如果你想在可训练和不可训练的权重之间切换,使用tf.get_variables('weights', trainable=False)
;而不是切换 True 或 False。
我正在用控制 'creatures' 的神经网络制作一个非常基本的人工生命模拟。我已经为我的前几次尝试制作了自己的版本,但收效甚微。我决定暂时使用 TensorFlow(或者任何库都可以)。问题是我想要一种方法来输入输入和权重,并接收输出,而无需网络尝试自我训练(就像我能找到的所有教程和示例中所做的那样。我将在最后包含我自己的代码,所以如果有一个简单的解决方案,那将是最好的,尽管库会使早期测试更容易。
def nn(n, s1, s2):
hidden_layer = []
out = []
tot = 0
for p in range(mid_num):
tot = 0
for u in range(len(n)):
tot += s1[u * mid_num + p] * n[u]
hidden_layer.append(tot)
tot = 0
for p in range(output_num):
for u in range(len(hidden_layer)):
tot += s2[u * output_num + p] * hidden_layer[u]
out.append(round(sigmoid(tot / 53000)))
# print(tot)
tot = 0
# print(out)
return out
如果你希望权重只是常数,所以它们只是矩阵乘法,你可以使用tf.constant
。如果你想在可训练和不可训练的权重之间切换,使用tf.get_variables('weights', trainable=False)
;而不是切换 True 或 False。