小编sam*_*sam的帖子

XOR神经网络收敛到0.5

我已经实现了以下神经网络来解决Python中的XOR问题。我的神经网络由2个神经元的输入层,2个神经元的1个隐藏层和1个神经元的输出层组成。我将Sigmoid函数用作隐藏层的激活函数,并将线性(恒等)函数用作输出层的激活函数:

import numpy as np

def sigmoid(z):
    return 1/(1+np.exp(-z))

def s_prime(z):
    return np.multiply(sigmoid(z), sigmoid(1.0-z))

def init_weights(layers, epsilon):
    weights = []
    for i in range(len(layers)-1):
        w = np.random.rand(layers[i+1], layers[i]+1)
        w = w * 2*epsilon - epsilon
        weights.append(np.mat(w))
    return weights

def fit(X, Y, w, predict=False, x=None):
    w_grad = ([np.mat(np.zeros(np.shape(w[i]))) 
              for i in range(len(w))])
    for i in range(len(X)):
        x = x if predict else X[0]
        y = Y[0,i]
        # forward propagate
        a = x
        a_s = []
        for j in range(len(w)):
            a = …
Run Code Online (Sandbox Code Playgroud)

python machine-learning backpropagation neural-network

5
推荐指数
1
解决办法
3094
查看次数

蒙特卡洛树搜索井字棋——可怜的代理

我正在尝试实现蒙特卡洛树搜索来在Python中玩井字棋。我目前的实现如下:

我有一个 Board 类来处理井字游戏板的更改。棋盘的状态由 2x3x3 numpy 数组表示,其中 2 个 3x3 矩阵中的每一个都是二进制矩阵,分别表示 X 的存在和 O 的存在。

class Board:
  '''
  class handling state of the board
  '''

  def __init__(self):
    self.state = np.zeros([2,3,3])
    self.player = 0 # current player's turn

  def copy(self):
    '''
    make copy of the board
    '''
    copy = Board()
    copy.player = self.player
    copy.state = np.copy(self.state)
    return copy

  def move(self, move):
    '''
    take move of form [x,y] and play
    the move for the current player
    '''
    if np.any(self.state[:,move[0],move[1]]): return
    self.state[self.player][move[0],move[1]] = …
Run Code Online (Sandbox Code Playgroud)

python algorithm machine-learning montecarlo monte-carlo-tree-search

5
推荐指数
1
解决办法
1500
查看次数

烧瓶会话不持久(邮差工作,Javascript没有)

我正在开发一个Flask服务器,通过Web在一些后端Python功能和Javascript客户端之间进行通信.我正在尝试利用Flask的session变量在与应用程序交互的过程中存储用户特定数据.我删除了下面的大多数应用程序特定代码,但我遇到的核心问题仍然存在.

这是我的(简化)Flask应用程序的代码:

import json
import os
from flask import Flask, jsonify, request, session

app = Flask(__name__)
app.secret_key = 'my_secret_key'

@app.route('/', methods=['GET'])
def run():
  session['hello'] = 'world'
  return jsonify(session['hello'])

@app.route('/update', methods=['POST'])
def update():
  return jsonify(session['hello'])

if __name__ == '__main__':
  app.run(host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

利用Postman,我可以向我的服务器发出GET请求并接收预期的输出"world".然后,我可以使用任意正文发出POST请求,并获得相同的预期输出"world"(再次使用Postman).

使用Chrome时,我可以访问我的服务器IP并查看"world"页面上的预期输出.我还可以使用Javascript(在Chrome的控制台中)手动发出GET请求,并获得与预期相同的响应.但是,当尝试使用Javascript向服务器发送POST请求时出现问题; 服务器KeyError: 'hello'在尝试发出此请求时显示.

这是我用来发出POST请求的Javascript:

var url = 'http://my_server_ip/update';
fetch(url, {
  method: 'POST',
  body: JSON.stringify('arbitrary_string'),
  headers: new Headers({
    'Content-Type': 'application/json'
  })
})
.then(response => response.json())
.then((data) => {
  console.log(data);
})
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?为什么我可以使用Postman进行GET/POST请求,但遇到错误,使用Javascript发出相同的请求?

javascript python session json flask

5
推荐指数
2
解决办法
1730
查看次数