• 大小: 2KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Python
  • 标签: RBF  神经网络  

资源简介

使用python语言编写,在pycharm环境下测试了,能够跑通。并且生成拟合曲线

资源截图

代码片段和文件信息

from scipy import *
from scipy.linalg import normpinv

from matplotlib import pyplot as plt

class RBF:
    def __init__(selfindimnumCentersoutdim):
        self.indim = indim
        self.outdim = outdim
        self.numCenters = numCenters
        self.centers = [random.uniform(-11indim) for i in range(numCenters)]
        self.beta = 8
        self.W = random.random((self.numCentersself.outdim))

    def _basisfunc(selfcd):
        assert len(d) == self.indim
        return exp(-self.beta*norm(c-d)**2)

    def _calcAct(self X):
        # calculate activations of RBFs

        G = zeros((X.shape[0] self.numCenters) float)
        for ci c in enumerate(self.centers):
            for xi x in enumerate(X):
                G[xi ci] = self._basisfunc(c x)
        return G

    def train(self X Y):

        “““ X: matrix of dimensions n x indim
            y: column vector of dimension n x 1 “““
        # choose random center vectors from training set

        rnd_idx = random.permutation(X.shape[0])[:self.numCenters]
        self.centers = [X[i :] for i in rnd_idx]
        print
        “center“ 

评论

共有 条评论