Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele für Numpys flexible Definition der neuronalen Netzwerkstruktur in Python

Beispiele für Numpys flexible Definition der neuronalen Netzwerkstruktur in Python

黄舟
黄舟Original
2017-08-20 10:39:141927Durchsuche

Dieser Artikel stellt hauptsächlich Pythons Methode zur flexiblen Definition der neuronalen Netzwerkstruktur basierend auf Numpy vor. Er analysiert die Prinzipien der neuronalen Netzwerkstruktur und die spezifische Implementierungsmethode von Python und beinhaltet verwandte Bedienfähigkeiten bei der Verwendung von Numpy Erweiterung zum Ausführen mathematischer Operationen in Python. Freunde können sich darauf beziehen

Dieser Artikel beschreibt, wie Python die neuronale Netzwerkstruktur basierend auf Numpy flexibel definieren kann. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Mit Numpy können Sie die Struktur des neuronalen Netzwerks flexibel definieren und auch die leistungsstarke Matrixoperationsfunktion von Numpy anwenden!

1. Verwendung

1).

Beschreibung:
Anzahl der Eingabeschichtknoten: 3

Anzahl der verborgenen Schichtknoten: 4
'''示例一'''
nn = NeuralNetworks([3,4,2]) # 定义神经网络
nn.fit(X,y) # 拟合
print(nn.predict(X)) #预测
Anzahl der Ausgabeschichtknoten: 2


2). -schichtiges neuronales Netzwerk:

Beschreibung:
Anzahl der Knoten der Eingabeschicht: 3

Anzahl der Knoten der verborgenen Schicht 1: 5
'''示例二'''
nn = NeuralNetworks([3,5,7,4,2]) # 定义神经网络
nn.fit(X,y) # 拟合
print(nn.predict(X)) #预测
Anzahl Anzahl der Knoten der verborgenen Schicht 2: 7

Anzahl der Knoten der verborgenen Schicht 3: 4
Anzahl der Knoten der Ausgabeschicht: 2



2. Implementierung

Die folgende Implementierungsmethode ist mein eigenes (@ hhh5460) Original. Wichtige Punkte:

dtype=object

Der vollständige Code unten ist, wie ich gelernt habe Maschinelles Lernen aus dem Stanford-Tutorial, komplett von mir getippt:

import numpy as np
class NeuralNetworks(object):
  ''''''
  def __init__(self, n_layers=None, active_type=None, n_iter=10000, error=0.05, alpha=0.5, lamda=0.4):
    '''搭建神经网络框架'''
    # 各层节点数目 (向量)
    self.n = np.array(n_layers) # 'n_layers必须为list类型,如:[3,4,2] 或 n_layers=[3,4,2]'
    self.size = self.n.size # 层的总数
    # 层 (向量)
    self.z = np.empty(self.size, dtype=object) # 先占位(置空),dtype=object !如下皆然
    self.a = np.empty(self.size, dtype=object)
    self.data_a = np.empty(self.size, dtype=object)
    # 偏置 (向量)
    self.b = np.empty(self.size, dtype=object)
    self.delta_b = np.empty(self.size, dtype=object)
    # 权 (矩阵)
    self.w = np.empty(self.size, dtype=object)
    self.delta_w = np.empty(self.size, dtype=object)
    # 填充
    for i in range(self.size):
      self.a[i] = np.zeros(self.n[i]) # 全零
      self.z[i] = np.zeros(self.n[i]) # 全零
      self.data_a[i] = np.zeros(self.n[i]) # 全零
      if i < self.size - 1:
        self.b[i] = np.ones(self.n[i+1])  # 全一
        self.delta_b[i] = np.zeros(self.n[i+1]) # 全零
        mu, sigma = 0, 0.1 # 均值、方差
        self.w[i] = np.random.normal(mu, sigma, (self.n[i], self.n[i+1])) # # 正态分布随机化
        self.delta_w[i] = np.zeros((self.n[i], self.n[i+1])) # 全零

Das obige ist der detaillierte Inhalt vonBeispiele für Numpys flexible Definition der neuronalen Netzwerkstruktur in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn