Inhaltsverzeichnis
1. Vorbereitung
1.1 Erstellen Sie das Netzwerk
1.2 Daten vorbereiten
1.3 Modelltraining
2. train, no_grad und eval
3. Vorwärtsausbreitung
4. Backpropagation
5. 更新参数
Heim Technologie-Peripheriegeräte KI Unglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen

Unglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen

Apr 12, 2023 am 08:31 AM
numpy 开发 深度学习

Hallo zusammen.

Heute möchte ich ein sehr tolles Open-Source-Projekt mit Ihnen teilen. Ich habe mit Numpy ein Deep-Learning-Framework entwickelt. Die Syntax ist im Grunde die gleiche wie bei Pytorch.

Unglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen

Heute nehmen wir ein einfaches Faltungs-Neuronales Netzwerk als Beispiel, um den Quellcode der Kernschritte des Trainingsprozesses des Neuronalen Netzwerks zu analysieren, wie z. B. Vorwärtsausbreitung, Rückausbreitung und Parameteroptimierung.

Die verwendeten Datensätze und Codes wurden gepackt. Am Ende des Artikels finden Sie Möglichkeiten, sie abzurufen.

1. Vorbereitung

Bereiten Sie zunächst die Daten und den Code vor.

1.1 Erstellen Sie das Netzwerk

Laden Sie zunächst den Quellcode des Frameworks herunter unter: https://github.com/duma-repo/PyDyNet

git clone https://github.com/duma-repo/PyDyNet.git
Nach dem Login kopieren

Erstellen Sie das LeNet-Faltungs-Neuronale Netzwerk und trainieren Sie das Drei-Klassifizierungs-Modell.

Unglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen

Erstellen Sie die Codedatei direkt im PyDyNet-Verzeichnis.

from pydynet import nn

class LeNet(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 6, kernel_size=5, padding=2)
self.conv2 = nn.Conv2d(6, 16, kernel_size=5)
self.avg_pool = nn.AvgPool2d(kernel_size=2, stride=2, padding=0)
self.sigmoid = nn.Sigmoid()
self.fc1 = nn.Linear(16 * 5 * 5, 120)
self.fc2 = nn.Linear(120, 84)
self.fc3 = nn.Linear(84, 3)

def forward(self, x):
x = self.conv1(x)
x = self.sigmoid(x)
x = self.avg_pool(x)

x = self.conv2(x)
x = self.sigmoid(x)
x = self.avg_pool(x)

x = x.reshape(x.shape[0], -1)

x = self.fc1(x)
x = self.sigmoid(x)
x = self.fc2(x)
x = self.sigmoid(x)
x = self.fc3(x)

return x
Nach dem Login kopieren

Sie können sehen, dass die Definition des Netzwerks genau mit der Pytorch-Syntax übereinstimmt.

In dem von mir bereitgestellten Quellcode wird die Zusammenfassungsfunktion zum Drucken der Netzwerkstruktur bereitgestellt.

1.2 Daten vorbereiten

Die Trainingsdaten verwenden den Fanshion-MNIST-Datensatz, der 10 Bildkategorien, 6.000 Bilder in jeder Kategorie, enthält.

Unglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen

Um das Training zu beschleunigen, habe ich nur die ersten drei Kategorien, insgesamt 1,8 W-Trainingsbilder, extrahiert, um ein Modell mit drei Klassifizierungen zu erstellen.

1.3 Modelltraining

import pydynet
from pydynet import nn
from pydynet import optim

lr, num_epochs = 0.9, 10
optimizer = optim.SGD(net.parameters(),
lr=lr)
loss = nn.CrossEntropyLoss()

for epoch in range(num_epochs):
net.train()
for i, (X, y) in enumerate(train_iter):
optimizer.zero_grad()
y_hat = net(X)
l = loss(y_hat, y)
l.backward()
optimizer.step()

with pydynet.no_grad():
metric.add(l.numpy() * X.shape[0],
 accuracy(y_hat, y),
 X.shape[0])
Nach dem Login kopieren

Der Trainingscode ist auch der gleiche wie bei Pytorch.

Der wichtigste Schritt besteht darin, sich mit dem Quellcode des Modelltrainings zu befassen, um die Prinzipien des Modelltrainings zu erlernen.

2. train, no_grad und eval

net.train werden aufgerufen, bevor das Modell mit dem Training beginnt.

def train(self, mode: bool = True):
set_grad_enabled(mode)
self.set_module_state(mode)
Nach dem Login kopieren

Sie können sehen, dass grad​(Gradient) auf True​ gesetzt wird und der anschließend erstellte Tensor einen Gradienten haben kann. Nachdem Tensor den Gradienten gebracht hat, wird er in das Berechnungsdiagramm eingefügt und wartet auf die Ableitung, um den Gradienten zu berechnen.

Das Folgende mit no_grad(): Code

class no_grad:
def __enter__(self) -> None:
self.prev = is_grad_enable()
set_grad_enabled(False)
Nach dem Login kopieren

setzt grad​(Gradient) auf False​, sodass der später erstellte Tensor nicht in das Berechnungsdiagramm eingefügt wird und es natürlich nicht erforderlich ist, den Gradienten zu berechnen. was die Schlussfolgerung beschleunigen kann.

Wir sehen häufig die Verwendung von net.eval() in Pytorch und werfen auch einen Blick auf den Quellcode.

def eval(self):
return self.train(False)
Nach dem Login kopieren

Sie können sehen, dass train(False)​ direkt aufgerufen wird, um den Farbverlauf auszuschalten, und der Effekt ist ähnlich wie bei no_grad().

Also generell vor dem Training den Zug anrufen, um das Gefälle einzuschalten. Rufen Sie nach dem Training eval auf, um den Gradienten zu schließen und eine schnelle Schlussfolgerung zu ermöglichen.

3. Vorwärtsausbreitung

Neben der Berechnung der Kategoriewahrscheinlichkeit besteht das Wichtigste bei der Vorwärtsausbreitung darin, die Tensoren im Netzwerk in der Reihenfolge der Vorwärtsausbreitung zu organisieren Rückausbreitung. Der Gradient des Tensors.

Tensor in neuronalen Netzen wird nicht nur zum Speichern von Daten verwendet, sondern auch zum Berechnen und Speichern von Gradienten.

Nehmen Sie die Faltungsoperation der ersten Ebene als Beispiel, um zu sehen, wie ein Berechnungsdiagramm erstellt wird.

def conv2d(x: tensor.Tensor,
 kernel: tensor.Tensor,
 padding: int = 0,
 stride: int = 1):
'''二维卷积函数
'''
N, _, _, _ = x.shape
out_channels, _, kernel_size, _ = kernel.shape
pad_x = __pad2d(x, padding)
col = __im2col2d(pad_x, kernel_size, stride)
out_h, out_w = col.shape[-2:]
col = col.transpose(0, 4, 5, 1, 2, 3).reshape(N * out_h * out_w, -1)
col_filter = kernel.reshape(out_channels, -1).T
out = col @ col_filter
return out.reshape(N, out_h, out_w, -1).transpose(0, 3, 1, 2)
Nach dem Login kopieren

x​ ist das Eingabebild und muss den Farbverlauf nicht aufzeichnen. Der Kernel ist das Gewicht des Faltungskerns und muss den Gradienten berechnen.

Der durch pad_x = __pad2d(x, padding)​ generierte neue Tensor hat also auch keinen Gradienten und muss daher nicht zum Berechnungsdiagramm hinzugefügt werden.

Der von kernel.reshape(out_channels, -1) erzeugte Tensor muss den Gradienten berechnen und auch zum Berechnungsdiagramm hinzugefügt werden.

Werfen wir einen Blick auf den Zusammenführungsprozess:

def reshape(self, *new_shape):
return reshape(self, new_shape)

class reshape(UnaryOperator):
'''
张量形状变换算子,在Tensor中进行重载

Parameters
----------
new_shape : tuple
变换后的形状,用法同NumPy
'''
def __init__(self, x: Tensor, new_shape: tuple) -> None:
self.new_shape = new_shape
super().__init__(x)

def forward(self, x: Tensor)
return x.data.reshape(self.new_shape)

def grad_fn(self, x: Tensor, grad: np.ndarray)
return grad.reshape(x.shape)
Nach dem Login kopieren

Die Reshape-Funktion gibt ein Reshape-Klassenobjekt zurück. Die Reshape-Klasse erbt die UnaryOperator-Klasse und in der Funktion __init__ wird die Initialisierungsfunktion der übergeordneten Klasse aufgerufen. Die

class UnaryOperator(Tensor):
def __init__(self, x: Tensor) -> None:
if not isinstance(x, Tensor):
x = Tensor(x)
self.device = x.device
super().__init__(
data=self.forward(x),
device=x.device,
# 这里 requires_grad 为 True
requires_grad=is_grad_enable() and x.requires_grad,
)
Nach dem Login kopieren

UnaryOperator-Klasse erbt die Tensor-Klasse, daher ist das Reshape-Objekt auch ein Tensor.

In der Funktion __init__​ von UnaryOperator wird die Initialisierungsfunktion von Tensor aufgerufen. Der übergebene Parameter „required_grad“ ist „True“, was bedeutet, dass der Gradient berechnet werden muss. Der Berechnungscode von

requires_grad​ ist is_grad_enable() und x.requires_grad is_grad_enable()​ wurde vom Zug auf True gesetzt, und x​ ist der Faltungskern, und sein require_grad​ ist ebenfalls True.

class Tensor:
def __init__(
self,
data: Any,
dtype=None,
device: Union[Device, int, str, None] = None,
requires_grad: bool = False,
) -> None:
if self.requires_grad:
# 不需要求梯度的节点不出现在动态计算图中
Graph.add_node(self)
Nach dem Login kopieren

Rufen Sie schließlich in der Initialisierungsmethode der Tensor-Klasse Graph.add_node(self) auf, um den aktuellen Tensor zum Berechnungsdiagramm hinzuzufügen.

In ähnlicher Weise werden die neuen Tensoren, die unten häufig zu sehen sind und den Tensor verwenden, der „requires_grad=True“ erfordert, in das Berechnungsdiagramm eingefügt.

Nach einer Faltungsoperation werden dem Berechnungsdiagramm 6 Knoten hinzugefügt.

4. Backpropagation

Nachdem eine Vorwärtspropagation abgeschlossen ist, beginnen Sie beim letzten Knoten im Berechnungsdiagramm und führen Sie die Backpropagation von hinten nach vorne durch.

l = loss(y_hat, y)
l.backward()
Nach dem Login kopieren

breitet sich Schicht für Schicht durch das Vorwärtsnetzwerk aus und erreicht schließlich den Verlusttensor l.

Ausgehend von l als Ausgangspunkt und Ausbreitung von vorne nach hinten kann der Gradient jedes Knotens im Berechnungsdiagramm berechnet werden.

Der Kerncode von Backward lautet wie folgt:

def backward(self, retain_graph: bool = False):

for node in Graph.node_list[y_id::-1]:
grad = node.grad
for last in [l for l in node.last if l.requires_grad]:
add_grad = node.grad_fn(last, grad)

last.grad += add_grad
Nach dem Login kopieren

Graph.node_list[y_id::-1] sortiert das Berechnungsdiagramm in umgekehrter Reihenfolge.

node​是前向传播时放入计算图​中的每个tensor。

node.last​ 是生成当前tensor的直接父节点。

调用node.grad_fn计算梯度,并反向传给它的父节点。

grad_fn​其实就是Tensor的求导公式,如:

class pow(BinaryOperator):
'''
幂运算算子,在Tensor类中进行重载

See also
--------
add : 加法算子
'''
def grad_fn(self, node: Tensor, grad: np.ndarray)
if node is self.last[0]:
return (self.data * self.last[1].data / node.data) * grad
Nach dem Login kopieren

return​后的代码其实就是幂函数求导公式。

假设y=x^2,x​的导数为2x。

5. 更新参数

反向传播计算梯度后,便可以调用优化器,更新模型参数。

l.backward()
optimizer.step()
Nach dem Login kopieren

本次训练我们用梯度下降SGD算法优化参数,更新过程如下:

def step(self):
for i in range(len(self.params)):
grad = self.params[i].grad + self.weight_decay * self.params[i].data
self.v[i] *= self.momentum
self.v[i] += self.lr * grad
self.params[i].data -= self.v[i]
if self.nesterov:
self.params[i].data -= self.lr * grad
Nach dem Login kopieren

self.params​是整个网络的权重,初始化SGD时传进去的。

step​函数最核心的两行代码,self.v[i] += self.lr * grad​ 和 self.params[i].data -= self.v[i]​,用当前参数 - 学习速率 * 梯度​更新当前参数。

这是机器学习的基础内容了,我们应该很熟悉了。

一次模型训练的完整过程大致就串完了,大家可以设置打印语句,或者通过DEBUG的方式跟踪每一行代码的执行过程,这样可以更了解模型的训练过程。

Das obige ist der detaillierte Inhalt vonUnglaublich! Verwenden Sie Numpy, um ein Deep-Learning-Framework zu entwickeln und den Trainingsprozess für neuronale Netze zu untersuchen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Jenseits von ORB-SLAM3! SL-SLAM: Szenen mit wenig Licht, starkem Jitter und schwacher Textur werden verarbeitet Jenseits von ORB-SLAM3! SL-SLAM: Szenen mit wenig Licht, starkem Jitter und schwacher Textur werden verarbeitet May 30, 2024 am 09:35 AM

Heute diskutieren wir darüber, wie Deep-Learning-Technologie die Leistung von visionbasiertem SLAM (Simultaneous Localization and Mapping) in komplexen Umgebungen verbessern kann. Durch die Kombination von Methoden zur Tiefenmerkmalsextraktion und Tiefenanpassung stellen wir hier ein vielseitiges hybrides visuelles SLAM-System vor, das die Anpassung in anspruchsvollen Szenarien wie schlechten Lichtverhältnissen, dynamischer Beleuchtung, schwach strukturierten Bereichen und starkem Jitter verbessern soll. Unser System unterstützt mehrere Modi, einschließlich erweiterter Monokular-, Stereo-, Monokular-Trägheits- und Stereo-Trägheitskonfigurationen. Darüber hinaus wird analysiert, wie visuelles SLAM mit Deep-Learning-Methoden kombiniert werden kann, um andere Forschungen zu inspirieren. Durch umfangreiche Experimente mit öffentlichen Datensätzen und selbst abgetasteten Daten demonstrieren wir die Überlegenheit von SL-SLAM in Bezug auf Positionierungsgenauigkeit und Tracking-Robustheit.

Vier empfohlene KI-gestützte Programmiertools Vier empfohlene KI-gestützte Programmiertools Apr 22, 2024 pm 05:34 PM

Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

Numpy-Version aktualisieren: eine detaillierte und leicht verständliche Anleitung Numpy-Version aktualisieren: eine detaillierte und leicht verständliche Anleitung Feb 25, 2024 pm 11:39 PM

So aktualisieren Sie die Numpy-Version: Leicht verständliches Tutorial, erfordert konkrete Codebeispiele. Einführung: NumPy ist eine wichtige Python-Bibliothek für wissenschaftliche Berechnungen. Es bietet ein leistungsstarkes mehrdimensionales Array-Objekt und eine Reihe verwandter Funktionen, mit denen effiziente numerische Operationen ausgeführt werden können. Mit der Veröffentlichung neuer Versionen stehen uns ständig neuere Funktionen und Fehlerbehebungen zur Verfügung. In diesem Artikel wird beschrieben, wie Sie Ihre installierte NumPy-Bibliothek aktualisieren, um die neuesten Funktionen zu erhalten und bekannte Probleme zu beheben. Schritt 1: Überprüfen Sie zu Beginn die aktuelle NumPy-Version

Verstehen Sie in einem Artikel: die Zusammenhänge und Unterschiede zwischen KI, maschinellem Lernen und Deep Learning Verstehen Sie in einem Artikel: die Zusammenhänge und Unterschiede zwischen KI, maschinellem Lernen und Deep Learning Mar 02, 2024 am 11:19 AM

In der heutigen Welle rasanter technologischer Veränderungen sind künstliche Intelligenz (KI), maschinelles Lernen (ML) und Deep Learning (DL) wie helle Sterne und führen die neue Welle der Informationstechnologie an. Diese drei Wörter tauchen häufig in verschiedenen hochaktuellen Diskussionen und praktischen Anwendungen auf, aber für viele Entdecker, die neu auf diesem Gebiet sind, sind ihre spezifische Bedeutung und ihre internen Zusammenhänge möglicherweise noch immer rätselhaft. Schauen wir uns also zunächst dieses Bild an. Es ist ersichtlich, dass zwischen Deep Learning, maschinellem Lernen und künstlicher Intelligenz ein enger Zusammenhang und eine fortschreitende Beziehung besteht. Deep Learning ist ein spezifischer Bereich des maschinellen Lernens und des maschinellen Lernens

Super stark! Top 10 Deep-Learning-Algorithmen! Super stark! Top 10 Deep-Learning-Algorithmen! Mar 15, 2024 pm 03:46 PM

Fast 20 Jahre sind vergangen, seit das Konzept des Deep Learning im Jahr 2006 vorgeschlagen wurde. Deep Learning hat als Revolution auf dem Gebiet der künstlichen Intelligenz viele einflussreiche Algorithmen hervorgebracht. Was sind Ihrer Meinung nach die zehn besten Algorithmen für Deep Learning? Im Folgenden sind meiner Meinung nach die besten Algorithmen für Deep Learning aufgeführt. Sie alle nehmen hinsichtlich Innovation, Anwendungswert und Einfluss eine wichtige Position ein. 1. Hintergrund des Deep Neural Network (DNN): Deep Neural Network (DNN), auch Multi-Layer-Perceptron genannt, ist der am weitesten verbreitete Deep-Learning-Algorithmus. Als er erstmals erfunden wurde, wurde er aufgrund des Engpasses bei der Rechenleistung in Frage gestellt Jahre, Rechenleistung, Der Durchbruch kam mit der Datenexplosion. DNN ist ein neuronales Netzwerkmodell, das mehrere verborgene Schichten enthält. In diesem Modell übergibt jede Schicht Eingaben an die nächste Schicht und

Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Apr 07, 2024 am 09:10 AM

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Mar 28, 2024 pm 10:00 PM

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

AlphaFold 3 wird auf den Markt gebracht und sagt die Wechselwirkungen und Strukturen von Proteinen und allen Lebensmolekülen umfassend und mit weitaus größerer Genauigkeit als je zuvor voraus AlphaFold 3 wird auf den Markt gebracht und sagt die Wechselwirkungen und Strukturen von Proteinen und allen Lebensmolekülen umfassend und mit weitaus größerer Genauigkeit als je zuvor voraus Jul 16, 2024 am 12:08 AM

Herausgeber | Rettichhaut Seit der Veröffentlichung des leistungsstarken AlphaFold2 im Jahr 2021 verwenden Wissenschaftler Modelle zur Proteinstrukturvorhersage, um verschiedene Proteinstrukturen innerhalb von Zellen zu kartieren, Medikamente zu entdecken und eine „kosmische Karte“ jeder bekannten Proteininteraktion zu zeichnen. Gerade hat Google DeepMind das AlphaFold3-Modell veröffentlicht, das gemeinsame Strukturvorhersagen für Komplexe wie Proteine, Nukleinsäuren, kleine Moleküle, Ionen und modifizierte Reste durchführen kann. Die Genauigkeit von AlphaFold3 wurde im Vergleich zu vielen dedizierten Tools in der Vergangenheit (Protein-Ligand-Interaktion, Protein-Nukleinsäure-Interaktion, Antikörper-Antigen-Vorhersage) deutlich verbessert. Dies zeigt, dass dies innerhalb eines einzigen einheitlichen Deep-Learning-Frameworks möglich ist

See all articles