Maison développement back-end Tutoriel Python pytorch + visdom gère des problèmes de classification simples

pytorch + visdom gère des problèmes de classification simples

Jun 04, 2018 pm 04:07 PM
pytorch

Cet article présente principalement comment pytorch + visdom gère des problèmes de classification simples. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Environnement<.>

Système : win 10

Carte graphique : gtx965m
CPU : i7-6700HQ
python 3.61
pytorch 0.3

Référence du package

import torch
from torch.autograd import Variable
import torch.nn.functional as F
import numpy as np
import visdom
import time
from torch import nn,optim
Copier après la connexion

Préparation des données

use_gpu = True
ones = np.ones((500,2))
x1 = torch.normal(6*torch.from_numpy(ones),2)
y1 = torch.zeros(500) 
x2 = torch.normal(6*torch.from_numpy(ones*[-1,1]),2)
y2 = y1 +1
x3 = torch.normal(-6*torch.from_numpy(ones),2)
y3 = y1 +2
x4 = torch.normal(6*torch.from_numpy(ones*[1,-1]),2)
y4 = y1 +3 

x = torch.cat((x1, x2, x3 ,x4), 0).float()
y = torch.cat((y1, y2, y3, y4), ).long()
Copier après la connexion

Regardez la visualisation ci-dessous :


préparation à la visualisation Visdom

Créez d'abord les fenêtres qui doivent être observées

viz = visdom.Visdom()
colors = np.random.randint(0,255,(4,3)) #颜色随机
#线图用来观察loss 和 accuracy
line = viz.line(X=np.arange(1,10,1), Y=np.arange(1,10,1))
#散点图用来观察分类变化
scatter = viz.scatter(
  X=x,
  Y=y+1, 
  opts=dict(
    markercolor = colors,
    marksize = 5,
    legend=["0","1","2","3"]),)
#text 窗口用来显示loss 、accuracy 、时间
text = viz.text("FOR TEST")
#散点图做对比
viz.scatter(
  X=x,
  Y=y+1, 
  opts=dict(
    markercolor = colors,
    marksize = 5,
    legend=["0","1","2","3"]
  ),
)
Copier après la connexion

L'effet est le suivant :

Traitement de régression logistique

Entrée 2, sortie 4

logstic = nn.Sequential(
  nn.Linear(2,4)
)
Copier après la connexion

Sélection du GPU ou du CPU :

if use_gpu:
  gpu_status = torch.cuda.is_available()
  if gpu_status:
    logstic = logstic.cuda()
    # net = net.cuda()
    print("###############使用gpu##############")
  else : print("###############使用cpu##############")
else:
  gpu_status = False
  print("###############使用cpu##############")
Copier après la connexion

Fonction d'optimisation et de perte :

loss_f = nn.CrossEntropyLoss()
optimizer_l = optim.SGD(logstic.parameters(), lr=0.001)
Copier après la connexion

Entraînement 2000 fois :

start_time = time.time()
time_point, loss_point, accuracy_point = [], [], []
for t in range(2000):
  if gpu_status:
    train_x = Variable(x).cuda()
    train_y = Variable(y).cuda()
  else:
    train_x = Variable(x)
    train_y = Variable(y)
  # out = net(train_x)
  out_l = logstic(train_x)
  loss = loss_f(out_l,train_y)
  optimizer_l.zero_grad()
  loss.backward()
  optimizer_l.step()
Copier après la connexion

Observation et visualisation des résultats d'entraînement :

if t % 10 == 0:
  prediction = torch.max(F.softmax(out_l, 1), 1)[1]
  pred_y = prediction.data
  accuracy = sum(pred_y ==train_y.data)/float(2000.0)
  loss_point.append(loss.data[0])
  accuracy_point.append(accuracy)
  time_point.append(time.time()-start_time)
  print("[{}/{}] | accuracy : {:.3f} | loss : {:.3f} | time : {:.2f} ".format(t + 1, 2000, accuracy, loss.data[0],
                                  time.time() - start_time))
  viz.line(X=np.column_stack((np.array(time_point),np.array(time_point))),
       Y=np.column_stack((np.array(loss_point),np.array(accuracy_point))),
       win=line,
       opts=dict(legend=["loss", "accuracy"]))
   #这里的数据如果用gpu跑会出错,要把数据换成cpu的数据 .cpu()即可
  viz.scatter(X=train_x.cpu().data, Y=pred_y.cpu()+1, win=scatter,name="add",
        opts=dict(markercolor=colors,legend=["0", "1", "2", "3"]))
  viz.text("<h3 align=&#39;center&#39; style=&#39;color:blue&#39;>accuracy : {}</h3><br><h3 align=&#39;center&#39; style=&#39;color:pink&#39;>"
       "loss : {:.4f}</h3><br><h3 align =&#39;center&#39; style=&#39;color:green&#39;>time : {:.1f}</h3>"
       .format(accuracy,loss.data[0],time.time()-start_time),win =text)
Copier après la connexion

On l'exécute d'abord sur cpu, et le résultat est le suivant :

Ensuite on l'exécute sur gpu, et le résultat est le suivant :

J'ai trouvé que le CPU est beaucoup plus rapide que le GPU, mais j'ai entendu dire que l'apprentissage automatique devrait être plus rapide que le GPU, j'ai recherché sur Baidu et le. La réponse sur Zhihu est :


Je crois comprendre que la puissance de calcul du GPU est bien supérieure à celle du CPU dans le traitement de la reconnaissance d'images et d'un grand nombre d'opérations matricielles. Lors du traitement de certaines entrées et sorties avec peu d’entrées et de sorties, le processeur présente plus d’avantages.

Ajoutez une couche neuronale :

net = nn.Sequential(
  nn.Linear(2, 10),
  nn.ReLU(),  #激活函数
  nn.Linear(10, 4)
)
Copier après la connexion

Ajoutez une couche neuronale de 10 unités et voyez si l'effet sera le même Amélioré :


Utilisation du processeur :


Utilisation du GPU :

Observation comparative, il ne semble y avoir aucune différence. Il semble que lorsqu'il s'agit de problèmes de classification simples (petites entrées et sorties), les couches neuronales et les GPU ne prendront pas en charge l'apprentissage automatique.

Recommandations associées :


Un exemple de construction d'un réseau neuronal simple pour implémenter la régression et la classification sur PyTorch

Explication détaillée de la formation PyTorch Batch et de la comparaison des optimiseurs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

iFlytek : les capacités de l'Ascend 910B de Huawei sont fondamentalement comparables à celles de l'A100 de Nvidia, et ils travaillent ensemble pour créer une nouvelle base pour l'intelligence artificielle générale de mon pays iFlytek : les capacités de l'Ascend 910B de Huawei sont fondamentalement comparables à celles de l'A100 de Nvidia, et ils travaillent ensemble pour créer une nouvelle base pour l'intelligence artificielle générale de mon pays Oct 22, 2023 pm 06:13 PM

Ce site a rapporté le 22 octobre qu'au troisième trimestre de cette année, iFlytek a réalisé un bénéfice net de 25,79 millions de yuans, soit une baisse de 81,86 % sur un an ; diminution d'une année sur l'autre de 76,36%. Jiang Tao, vice-président d'iFlytek, a révélé lors de la séance d'information sur les performances du troisième trimestre qu'iFlytek avait lancé un projet de recherche spécial avec Huawei Shengteng début 2023 et développé conjointement une bibliothèque d'opérateurs hautes performances avec Huawei pour créer conjointement une nouvelle base pour l'artificiel général de la Chine. intelligence pour permettre des modèles nationaux à grande échelle L'architecture est basée sur des logiciels et du matériel innovants indépendamment. Il a souligné que les capacités actuelles de l’Ascend 910B de Huawei sont fondamentalement comparables à celles de l’A100 de Nvidia. Lors du prochain iFlytek 1024 Global Developer Festival, iFlytek et Huawei feront d'autres annonces conjointes sur la base de puissance de calcul de l'intelligence artificielle. Il a également mentionné,

La combinaison parfaite de PyCharm et PyTorch : étapes détaillées d'installation et de configuration La combinaison parfaite de PyCharm et PyTorch : étapes détaillées d'installation et de configuration Feb 21, 2024 pm 12:00 PM

PyCharm est un puissant environnement de développement intégré (IDE) et PyTorch est un framework open source populaire dans le domaine de l'apprentissage profond. Dans le domaine de l'apprentissage automatique et de l'apprentissage profond, l'utilisation de PyCharm et PyTorch pour le développement peut améliorer considérablement l'efficacité du développement et la qualité du code. Cet article présentera en détail comment installer et configurer PyTorch dans PyCharm, et joindra des exemples de code spécifiques pour aider les lecteurs à mieux utiliser les puissantes fonctions de ces deux éléments. Étape 1 : Installer PyCharm et Python

Introduction à cinq méthodes d'échantillonnage dans les tâches de génération de langage naturel et l'implémentation du code Pytorch Introduction à cinq méthodes d'échantillonnage dans les tâches de génération de langage naturel et l'implémentation du code Pytorch Feb 20, 2024 am 08:50 AM

Dans les tâches de génération de langage naturel, la méthode d'échantillonnage est une technique permettant d'obtenir du texte à partir d'un modèle génératif. Cet article abordera 5 méthodes courantes et les implémentera à l'aide de PyTorch. 1. GreedyDecoding Dans le décodage gourmand, le modèle génératif prédit les mots de la séquence de sortie en fonction du temps de la séquence d'entrée pas à pas. À chaque pas de temps, le modèle calcule la distribution de probabilité conditionnelle de chaque mot, puis sélectionne le mot avec la probabilité conditionnelle la plus élevée comme sortie du pas de temps actuel. Ce mot devient l'entrée du pas de temps suivant et le processus de génération se poursuit jusqu'à ce qu'une condition de fin soit remplie, telle qu'une séquence d'une longueur spécifiée ou un marqueur de fin spécial. La caractéristique de GreedyDecoding est qu’à chaque fois la probabilité conditionnelle actuelle est la meilleure

Implémentation d'un modèle de diffusion de suppression du bruit à l'aide de PyTorch Implémentation d'un modèle de diffusion de suppression du bruit à l'aide de PyTorch Jan 14, 2024 pm 10:33 PM

Avant de comprendre en détail le principe de fonctionnement du modèle probabiliste de diffusion de débruitage (DDPM), comprenons d'abord une partie du développement de l'intelligence artificielle générative, qui est également l'une des recherches fondamentales du DDPM. VAEVAE utilise un encodeur, un espace latent probabiliste et un décodeur. Pendant l'entraînement, l'encodeur prédit la moyenne et la variance de chaque image et échantillonne ces valeurs à partir d'une distribution gaussienne. Le résultat de l'échantillonnage est transmis au décodeur, qui convertit l'image d'entrée sous une forme similaire à l'image de sortie. La divergence KL est utilisée pour calculer la perte. Un avantage significatif de la VAE est sa capacité à générer des images diversifiées. Lors de l'étape d'échantillonnage, on peut directement échantillonner à partir de la distribution gaussienne et générer de nouvelles images via le décodeur. Le GAN a fait de grands progrès dans le domaine des auto-encodeurs variationnels (VAE) en seulement un an.

Tutoriel sur l'installation de PyCharm avec PyTorch Tutoriel sur l'installation de PyCharm avec PyTorch Feb 24, 2024 am 10:09 AM

En tant que puissant framework d'apprentissage profond, PyTorch est largement utilisé dans divers projets d'apprentissage automatique. En tant que puissant environnement de développement intégré Python, PyCharm peut également fournir un bon support lors de la mise en œuvre de tâches d'apprentissage en profondeur. Cet article présentera en détail comment installer PyTorch dans PyCharm et fournira des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement avec PyTorch pour des tâches d'apprentissage en profondeur. Étape 1 : Installer PyCharm Tout d’abord, nous devons nous assurer que nous avons

Apprentissage profond avec PHP et PyTorch Apprentissage profond avec PHP et PyTorch Jun 19, 2023 pm 02:43 PM

L’apprentissage profond est une branche importante dans le domaine de l’intelligence artificielle et a reçu de plus en plus d’attention ces dernières années. Afin de pouvoir mener des recherches et des applications en matière d'apprentissage profond, il est souvent nécessaire d'utiliser certains cadres d'apprentissage profond pour y parvenir. Dans cet article, nous présenterons comment utiliser PHP et PyTorch pour le deep learning. 1. Qu'est-ce que PyTorch ? PyTorch est un framework d'apprentissage automatique open source développé par Facebook. Il peut nous aider à créer et former rapidement des modèles d'apprentissage en profondeur. PyTorc

si rapide! Reconnaissez la parole vidéo en texte en quelques minutes seulement avec moins de 10 lignes de code si rapide! Reconnaissez la parole vidéo en texte en quelques minutes seulement avec moins de 10 lignes de code Feb 27, 2024 pm 01:55 PM

Bonjour à tous, je m'appelle Kite. Il y a deux ans, le besoin de convertir des fichiers audio et vidéo en contenu texte était difficile à réaliser, mais il peut désormais être facilement résolu en quelques minutes seulement. On dit que pour obtenir des données de formation, certaines entreprises ont entièrement exploré des vidéos sur des plateformes vidéo courtes telles que Douyin et Kuaishou, puis ont extrait l'audio des vidéos et les ont converties sous forme de texte pour les utiliser comme corpus de formation pour les modèles Big Data. . Si vous devez convertir un fichier vidéo ou audio en texte, vous pouvez essayer cette solution open source disponible aujourd'hui. Par exemple, vous pouvez rechercher des moments précis où apparaissent des dialogues dans des programmes de cinéma et de télévision. Sans plus attendre, entrons dans le vif du sujet. Whisper est le Whisper open source d'OpenAI. Bien sûr, il est écrit en Python et ne nécessite que quelques packages d'installation simples.

Comment installer pytorch dans pycharm Comment installer pytorch dans pycharm Dec 08, 2023 pm 03:05 PM

Étapes d'installation : 1. Ouvrez PyCharm et créez un nouveau projet Python ; 2. Dans la barre d'état inférieure de PyCharm, cliquez sur l'icône "Terminal" pour ouvrir la fenêtre du terminal. 3. Dans la fenêtre du terminal, utilisez la commande pip pour installer PyTorch ; , en fonction du système et des exigences, vous pouvez choisir différentes méthodes d'installation : 4. Une fois l'installation terminée, vous pouvez écrire du code dans PyCharm et importer la bibliothèque PyTorch pour l'utiliser.

See all articles