pytorch入门学习第一课深度学习回顾

7 篇文章 1 订阅
订阅专栏
01 神经网络快速入门

Modeling, Inference, Learning

在这里插入图片描述

什么是深度学习?

在这里插入图片描述

什么是神经网络?

在这里插入图片描述
在这里插入图片描述

激活函数

在这里插入图片描述

前向神经网络

在这里插入图片描述

Recurrent Neural Networks(RNN循环神经网络)

在这里插入图片描述

Seq2Seq with Attention

在这里插入图片描述

02 用PyTorch构建深度学习模型

深度学习模型框架概览
在这里插入图片描述
PyTorch可以做什么?
在这里插入图片描述

03 PyTorch精彩项目介绍

图像分类 ResNet

在这里插入图片描述
项目地址

Object Detection

在这里插入图片描述
项目地址

Image Style Transfer

在这里插入图片描述

项目地址

CycleGAN

在这里插入图片描述
项目地址

Image Captioning

在这里插入图片描述
项目地址

04 实战

用numpy实现两层神经网络
一个全连接ReLU神经网络,一个隐藏层,没有bias。用来从x预测y,使用L2 Loss。
这一实现完全使用numpy来计算前向神经网络,loss,和反向传播。
numpy ndarray是一个普通的n维array。它不知道任何关于深度学习或者梯度(gradient)的知识,也不知道计算图(computation graph),只是一种用来计算数学运算的数据结构。

import numpy as np

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random input and output data
x = np.random.randn(N, D_in)
y = np.random.randn(N, D_out)

# Randomly initialize weights
w1 = np.random.randn(D_in, H)
w2 = np.random.randn(H, D_out)

learning_rate = 1e-6
for t in range(500):
    # Forward pass: compute predicted y
    h = x.dot(w1)
    h_relu = np.maximum(h, 0)
    y_pred = h_relu.dot(w2)

    # Compute and print loss
    loss = np.square(y_pred - y).sum()
    print(t, loss)

    # Backprop to compute gradients of w1 and w2 with respect to loss
    
    # loss = (y_pred - y) ** 2
    grad_y_pred = 2.0 * (y_pred - y)
    # 
    grad_w2 = h_relu.T.dot(grad_y_pred)
    grad_h_relu = grad_y_pred.dot(w2.T)
    grad_h = grad_h_relu.copy()
    grad_h[h < 0] = 0
    grad_w1 = x.T.dot(grad_h)

    # Update weights
    w1 -= learning_rate * grad_w1
    w2 -= learning_rate * grad_w2

部分数据
Tensor和autograd
PyTorch的一个重要功能就是autograd,也就是说只要定义了forward pass(前向神经网络),计算了loss之后,PyTorch可以自动求导计算模型所有参数的梯度。

一个PyTorch的Tensor表示计算图中的一个节点。如果x是一个Tensor并且x.requires_grad=True那么x.grad是另一个储存着x当前梯度(相对于一个scalar,常常是loss)的向量。

import torch

dtype = torch.float
device = torch.device("cpu")
# device = torch.device("cuda:0") # Uncomment this to run on GPU

# N 是 batch size; D_in 是 input dimension;
# H 是 hidden dimension; D_out 是 output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# 创建随机的Tensor来保存输入和输出
# 设定requires_grad=False表示在反向传播的时候我们不需要计算gradient
x = torch.randn(N, D_in, device=device, dtype=dtype)
y = torch.randn(N, D_out, device=device, dtype=dtype)

# 创建随机的Tensor和权重。
# 设置requires_grad=True表示我们希望反向传播的时候计算Tensor的gradient
w1 = torch.randn(D_in, H, device=device, dtype=dtype, requires_grad=True)
w2 = torch.randn(H, D_out, device=device, dtype=dtype, requires_grad=True)

learning_rate = 1e-6
for t in range(500):
    # 前向传播:通过Tensor预测y;这个和普通的神经网络的前向传播没有任何不同,
    # 但是我们不需要保存网络的中间运算结果,因为我们不需要手动计算反向传播。
    y_pred = x.mm(w1).clamp(min=0).mm(w2)

    # 通过前向传播计算loss
    # loss是一个形状为(1,)的Tensor
    # loss.item()可以给我们返回一个loss的scalar
    loss = (y_pred - y).pow(2).sum()
    print(t, loss.item())

    # PyTorch给我们提供了autograd的方法做反向传播。如果一个Tensor的requires_grad=True,
    # backward会自动计算loss相对于每个Tensor的gradient。在backward之后,
    # w1.grad和w2.grad会包含两个loss相对于两个Tensor的gradient信息。
    loss.backward()

    # 我们可以手动做gradient descent(后面我们会介绍自动的方法)。
    # 用torch.no_grad()包含以下statements,因为w1和w2都是requires_grad=True,
    # 但是在更新weights之后我们并不需要再做autograd。
    # 另一种方法是在weight.data和weight.grad.data上做操作,这样就不会对grad产生影响。
    # tensor.data会我们一个tensor,这个tensor和原来的tensor指向相同的内存空间,
    # 但是不会记录计算图的历史。
    with torch.no_grad():
        w1 -= learning_rate * w1.grad
        w2 -= learning_rate * w2.grad

        # Manually zero the gradients after updating weights
        w1.grad.zero_()
        w2.grad.zero_()

PyTorch: nn

import torch

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random Tensors to hold inputs and outputs
x = torch.randn(N, D_in)
y = torch.randn(N, D_out)

# Use the nn package to define our model as a sequence of layers. nn.Sequential
# is a Module which contains other Modules, and applies them in sequence to
# produce its output. Each Linear Module computes output from input using a
# linear function, and holds internal Tensors for its weight and bias.
model = torch.nn.Sequential(
    torch.nn.Linear(D_in, H),
    torch.nn.ReLU(),
    torch.nn.Linear(H, D_out),
)

# The nn package also contains definitions of popular loss functions; in this
# case we will use Mean Squared Error (MSE) as our loss function.
loss_fn = torch.nn.MSELoss(reduction='sum')

learning_rate = 1e-4
for t in range(500):
    # Forward pass: compute predicted y by passing x to the model. Module objects
    # override the __call__ operator so you can call them like functions. When
    # doing so you pass a Tensor of input data to the Module and it produces
    # a Tensor of output data.
    y_pred = model(x)

    # Compute and print loss. We pass Tensors containing the predicted and true
    # values of y, and the loss function returns a Tensor containing the
    # loss.
    loss = loss_fn(y_pred, y)
    print(t, loss.item())

    # Zero the gradients before running the backward pass.
    model.zero_grad()

    # Backward pass: compute gradient of the loss with respect to all the learnable
    # parameters of the model. Internally, the parameters of each Module are stored
    # in Tensors with requires_grad=True, so this call will compute gradients for
    # all learnable parameters in the model.
    loss.backward()

    # Update the weights using gradient descent. Each parameter is a Tensor, so
    # we can access its gradients like we did before.
    with torch.no_grad():
        for param in model.parameters():
            param -= learning_rate * param.grad

PyTorch: 自定义 nn Modules

import torch


class TwoLayerNet(torch.nn.Module):
    def __init__(self, D_in, H, D_out):
        """
        In the constructor we instantiate two nn.Linear modules and assign them as
        member variables.
        """
        super(TwoLayerNet, self).__init__()
        self.linear1 = torch.nn.Linear(D_in, H)
        self.linear2 = torch.nn.Linear(H, D_out)

    def forward(self, x):
        """
        In the forward function we accept a Tensor of input data and we must return
        a Tensor of output data. We can use Modules defined in the constructor as
        well as arbitrary operators on Tensors.
        """
        h_relu = self.linear1(x).clamp(min=0)
        y_pred = self.linear2(h_relu)
        return y_pred


# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random Tensors to hold inputs and outputs
x = torch.randn(N, D_in)
y = torch.randn(N, D_out)

# Construct our model by instantiating the class defined above
model = TwoLayerNet(D_in, H, D_out)

# Construct our loss function and an Optimizer. The call to model.parameters()
# in the SGD constructor will contain the learnable parameters of the two
# nn.Linear modules which are members of the model.
criterion = torch.nn.MSELoss(reduction='sum')
optimizer = torch.optim.SGD(model.parameters(), lr=1e-4)
for t in range(500):
    # Forward pass: Compute predicted y by passing x to the model
    y_pred = model(x)

    # Compute and print loss
    loss = criterion(y_pred, y)
    print(t, loss.item())

    # Zero gradients, perform a backward pass, and update the weights.
    optimizer.zero_grad()
    loss.backward()
    optimizer.step() 

FizzBuzz
FizzBuzz是一个简单的小游戏。游戏规则如下:从1开始往上数数,当遇到3的倍数的时候,说fizz,当遇到5的倍数,说buzz,当遇到15的倍数,就说fizzbuzz,其他情况下则正常数数。

我们可以写一个简单的小程序来决定要返回正常数值还是fizz, buzz 或者 fizzbuzz。

# One-hot encode the desired outputs: [number, "fizz", "buzz", "fizzbuzz"]
def fizz_buzz_encode(i):
    if   i % 15 == 0: return 3
    elif i % 5  == 0: return 2
    elif i % 3  == 0: return 1
    else:             return 0
    
def fizz_buzz_decode(i, prediction):
    return [str(i), "fizz", "buzz", "fizzbuzz"][prediction]

print(fizz_buzz_decode(1, fizz_buzz_encode(1)))
print(fizz_buzz_decode(2, fizz_buzz_encode(2)))
print(fizz_buzz_decode(5, fizz_buzz_encode(5)))
print(fizz_buzz_decode(12, fizz_buzz_encode(12)))
print(fizz_buzz_decode(15, fizz_buzz_encode(15)))
1
2
buzz
fizz
fizzbuzz

我们首先定义模型的输入与输出(训练数据)

import numpy as np
import torch

NUM_DIGITS = 10

# Represent each input by an array of its binary digits.
def binary_encode(i, num_digits):
    return np.array([i >> d & 1 for d in range(num_digits)])

trX = torch.Tensor([binary_encode(i, NUM_DIGITS) for i in range(101, 2 ** NUM_DIGITS)])
trY = torch.LongTensor([fizz_buzz_encode(i) for i in range(101, 2 ** NUM_DIGITS)])

然后我们用PyTorch定义模型

# Define the model
NUM_HIDDEN = 100
model = torch.nn.Sequential(
    torch.nn.Linear(NUM_DIGITS, NUM_HIDDEN),
    torch.nn.ReLU(),
    torch.nn.Linear(NUM_HIDDEN, 4)
)

为了让我们的模型学会FizzBuzz这个游戏,我们需要定义一个损失函数,和一个优化算法。 这个优化算法会不断优化(降低)损失函数,使得模型的在该任务上取得尽可能低的损失值。 损失值低往往表示我们的模型表现好,损失值高表示我们的模型表现差。 由于FizzBuzz游戏本质上是一个分类问题,我们选用Cross Entropyy Loss函数。 优化函数我们选用Stochastic Gradient Descent。

loss_fn = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr = 0.05)

以下是模型的训练代码

# Start training it
BATCH_SIZE = 128
for epoch in range(10000):
    for start in range(0, len(trX), BATCH_SIZE):
        end = start + BATCH_SIZE
        batchX = trX[start:end]
        batchY = trY[start:end]

        y_pred = model(batchX)
        loss = loss_fn(y_pred, batchY)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

    # Find loss on training data
    loss = loss_fn(model(trX), trY).item()
    print('Epoch:', epoch, 'Loss:', loss)

最后我们用训练好的模型尝试在1到100这些数字上玩FizzBuzz游戏

testX = torch.Tensor([binary_encode(i, NUM_DIGITS) for i in range(1, 101)])
with torch.no_grad():
    testY = model(testX)
predictions = zip(range(1, 101), list(testY.max(1)[1].data.tolist()))

print([fizz_buzz_decode(i, x) for (i, x) in predictions])
['1', '2', 'fizz', 'buzz', 'buzz', 'fizz', '7', '8', 'fizz', 'buzz', '11', 'fizz', '13', '14', 'fizzbuzz', '16', '17', 'fizz', '19', 'buzz', 'fizz', '22', '23', 'fizz', 'buzz', '26', 'fizz', '28', '29', 'fizzbuzz', '31', '32', 'fizz', '34', 'buzz', 'fizz', '37', '38', 'fizz', 'buzz', '41', 'fizz', '43', '44', 'fizzbuzz', '46', '47', 'fizz', '49', 'buzz', 'fizz', '52', '53', 'fizz', 'buzz', '56', 'fizz', '58', '59', 'fizz', '61', '62', 'fizz', '64', 'buzz', 'fizz', '67', 'buzz', 'fizz', 'buzz', '71', 'fizz', '73', '74', 'fizzbuzz', '76', '77', 'fizz', '79', 'buzz', 'fizz', '82', '83', 'fizz', 'buzz', '86', 'fizz', '88', '89', 'fizzbuzz', '91', '92', 'fizz', '94', 'buzz', 'fizz', '97', '98', 'fizz', 'buzz']
print(np.sum(testY.max(1)[1].numpy() == np.array([fizz_buzz_encode(i) for i in range(1,101)])))
testY.max(1)[1].numpy() == np.array([fizz_buzz_encode(i) for i in range(1,101)])
array([ True,  True,  True, False,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True, False,  True,  True,  True,
        True,  True,  True,  True, False,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True,  True,  True,  True,  True,  True,  True,  True,  True,
        True])

查看模型的预测的结果是否正确

第1课课后复习导图
在这里插入图片描述

具体代码
链接:https://pan.baidu.com/s/17ocf9aK7GitLLlD4aDHLXg
提取码:vnc7

PyTorch深度学习代码及数据PyTorch深度学习代码及数据
03-01
PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据PyTorch深度学习代码及数据
04.PyTorch基础教程(深度学习PyTorch入门实战教程)
03-01
(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)(深度学习PyTorch入门实战教程)
Pytorch深度学习入门与实战课程
09-13
给大家分享一套课程——《Pytorch深度学习入门与实战》,2022年7月最新升级完整版25章,课程包升级。课程配套有完整的代码+课件+数据集下载。 Pytorch深度学习入门与实战课程是一套系统实战课程,结合了超多的经典实例,比如:图像定位实例、Unet语义分割实例、LinKnet图像语义分割实例、经典四种天气分类实例、文本分类实例、循环神经网络、Tensorboard可视化等等。
pytorch查看模型weightgrad方式
09-16
主要介绍了pytorch查看模型weightgrad方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
深度学习PyTorch极简入门PDF教程1
08-03
介绍。这里,大家把它看成是一个非线性函数即可。这样,线性感知机和非线性单元就构成了单个神经元。单个神经元描述的是输出与单一变量之间的关系。还是上面的例子,如果房
微分与梯度的概念理解
daimashiren的博客
02-21 2308
微分 一元函数的微分定义式如下: dy=f′(x)∗dx dy=f'(x)*dx dy=f′(x)∗dx 即 垂直变化量 = 斜率(导数) * 水平变化量 微分的含义:用一个线性函数的变化来逼近任意可导函数的变化 梯度 梯度是一个矢量,是多元函数在某一点处的偏导数构成的矢量。例如,令 z = f(x,y),则z在点p(x,y)处的梯度为 : ▽f(x,y)=gradf(x,y)=(∂f∂x,∂f∂y) ▽f(x,y) = gradf(x,y) = (\frac{\partial f}{\partial x
torch常用的函数和知识点
qq_72985002的博客
10-20 265
transform函数中的RandomCrop操作来随机裁剪图像,以增加数据集的多样性。Compose对象是PyTorch中的一个类,用于定义一系列的预处理操作。模块提供了许多实用工具和类,用于加载、处理和组织数据。requires_grad=True:启用自动求导。轻松地加载数据集,并遍历每一批次。目前:创建生成数据集。
深度学习Pytorch学习笔记(四)
qq_38883271的博客
07-27 155
torch.nn.Sequential快速搭建神经网络 torch.nn.Sequential实际仍然继承的是Module类,其内部某些方法依然调用的是父类Module的方法,只不过Sequential的__init__()可以接收用户堆叠的所有层结构(包括激活函数)的初始化操作,非常方便。 import torch import warnings import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import a
详解Pytorch中的requires_grad、叶子节点与非叶子节点、with torch.no_grad()、model.eval()、model.train()、BatchNorm层
qq_36429555的博客
07-11 8412
requires_grad require_grad意为是否需要计算梯度 使用backward()函数反向传播计算梯度时,并不是计算所有tensor的梯度,只有满足下面条件的tensor的梯度才会被计算:1. 当前tensor的 require_grad=True(代码示例一);2. 依赖于该tensor的所有tensor的 require_grad=True,即可以获得依赖于该tensor的所有tensor的梯度值。 在所有的require_grad=True中 默认情况下,**非叶子节点**的梯度值
Pytorch(二) —— 神经网络基础知识(tensor概念&Autograd&nn module&optim&Control Flow + Weight Sharing)
hxxjxw的博客
05-13 1269
tensor,即“张量”。实际上跟numpy数组、向量、矩阵的格式基本一样。但是是专门针对GPU来设计的,可以运行在GPU上来加快计算效率。 PyTorch中定义tensor,就跟numpy定义矩阵、向量差不多,例如定义一个5×3的tensor,每一项都是0的张量: x = torch.zeros(5,3) 基本数据类型 在pytorch中,数据类型All is about Tensor 对于python中的数据类型,pytorch都能一一对应起来 但是pytorch是没有...
深度学习PyTorch入门学习教程.txt打包整理.zip
03-05
深度学习PyTorch入门学习教程.txt打包整理.zip
深度学习PyTorch极简入门PDF教程.pdf
01-15
深度学习PyTorch极简入门PDF教程,18章合为一个文件 第01课:深度学习概述 第02课:深度学习 Python 必备知识点 ... 第18课:项目实战——利用 PyTorch 构建 RNN 模型
神经网络参数管理——【torch学习笔记】
诗酒趁年华。
04-20 1951
参数管理 引用翻译:《动手学深度学习》 训练深度网络的最终目的是为一个给定的架构找到好的参数值。当一切都很标准时,torch.nn.Sequential类是一个完全好的工具。然而,很少有模型是完全标准的,大多数科学家都想建立一些新颖的东西。本节展示了如何操作参数。特别是我们将涵盖以下几个方面。 1、为调试、诊断、使其可视化或保存而访问参数,是了解如何使用自定义模型的第一步。 2、其次,我们要以特定的方式设置它们,例如为了初始化目的。我们讨论参数初始化器的结构。 3、最后,我们展示了如何通过构建共享一些参数的
动手学深度学习(五、卷积神经网络基础知识)
jiangchao98的博客
03-28 507
动手学深度学习(五、卷积神经网络基础知识) 一、二维卷积层 二维卷积层的核心计算是二维互相关运算。在最简单的形式下,它对二维输入数据和卷积核做互相关运算然后加上偏差。 我们可以设计卷积核来检测图像中的边缘。 我们可以通过数据来学习卷积核。 import torch from torch import nn #import torch.nn as nn #1二维互相关运算 #数组X、核数组K, 输出数组Y def corr2d(X, K): # 本函数已保存在d2lzh_pytorch包中方便以
基础的神经网络剪枝知识 Learning Efficient Convolutional Networks through Network Slimming
邹九的个人博客
12-04 1925
神经网络除了量化以外,还可以进行剪枝 某些剪枝的方法,一般是先训练预训练模型,然后进行剪枝,再次训练剪枝以后的网络,然后剪枝-训练不断重复,每次剪枝以后得到的网络结构,参数量更少,所以某些剪枝方法可以得到更优化的网络结构 这个文篇使用BN层参数γ,由于每个输出的每个channel都有各自的参数γ和β,可以使用γ值来判断不同channel的重要程度。在初始训练的时候,使用了L1正则对参数γ进行离散化。实际对γ进行正则化的时候,使用了系数args.s,一般是等于0.0001或者0.001,最后一行代码,to
PyTorch 之 简介、相关软件框架、基本使用方法、tensor 的几种形状和 autograd 机制
每天进步一点点!
03-15 2646
PyTorch 是一个基于 Torch 的 Python 开源机器学习库,用于自然语言处理等应用程序。它主要由 Facebook 的人工智能小组开发,不仅能够实现强大的 GPU 加速,同时还支持动态神经网络,这一点是现在很多主流框架如 TensorFlow 都不支持的。PyTorch 提供了两个高级功能:(1) 具有强大的 GPU 加速的张量计算(如 Numpy 库等)。(2) 包含自动求导系统的深度神经网络
Pytorch入门学习(五)---- 示例讲解Tensor, Autograd, nn.module
Hungryof的专栏
05-09 9695
Pytorch学习,直接看例子快速入门
Pytorch 深度学习实践Lecture_4 Back Propagation
sheriMMM的博客
04-20 598
反向传播 可以通过链式法则,使得梯度在计算图中进行反向传播 在Pytorch中, Tensor 对象包含data 和 grad 两个属性    data:用于存放tensor,是数据本体。    grad:存放data的梯度值(默认不计算梯度) 在Pytorch中, Tensor之间的计算即为动态生成计算图(谨记) import torch import matplotlib.pyplot as plt x_data = [1.0, 2.0, 3.0] y_data = [2.0, 4...
怎么在stm32上跑自己的神经网络
最新发布
qq_43745917的博客
06-04 1506
基本步骤为先跑出神经网络得到xxx.h5文件,然后用cubemx把h5文件移植到stm32中,然后初始化设置输入输出,实时输入数据进行神经网络检测,需要做的工作主要有:会写或者会改神经网络代码,输出.h5文件(使用Tesoroflow产生得有版本要求,太高得可能不行),使用cubemx来移植到stm32上;1、 自行上网查询stm32AI教程,网上90%的教程会教到能把官方例程跑出来,使用cubemx进行验证(跑不出来,检查步骤有无错误,时钟设置是否正确,串口设置是否正确)
深度学习框架pytorch入门与实践 第二版 pdf
06-30
深度学习框架PyTorch入门与实践 第二版》在第一版的基础上更新了内容,包括新特性和最新的发展趋势。读者可以通过这本书更深入地了解PyTorch的使用,并掌握一些高级的技巧和工具。 总之,《深度学习框架PyTorch...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 解决zookeeper is not a recognized option问题 27541
  • hudi详解并集成spark实现快照查询和增量读取数据 7146
  • flink的checkpoint配置 3988
  • 使用LSTM进行多元时间序列分析-全部无代码 3752
  • linux /dev/mapper/rhel-root分区扩容 3548

分类专栏

  • 云计算 1篇
  • 大数据 17篇
  • java 5篇
  • leetcode 3篇
  • 机器学习 4篇
  • knime 14篇
  • 笔记 3篇
  • mysql 1篇
  • python 7篇
  • docker 1篇

最新评论

  • pytorch入门学习第一课深度学习回顾

    qq_34610673: 太详细了!感谢

  • 解决zookeeper is not a recognized option问题

    nemo2011: zookeeper is not a recognized option is an error that occurs when using an outdated command to consume messages from Kafka1,2,3,4. The error is caused by a high version of Kafka that does not support the --zookeeper option1,2,3,4. The new command to consume messages from Kafka is --bootstrap-server1,2,3. Kafka has integrated zookeeper, so there is no need to download zookeeper separately. 解决方案:--bootstrap-server 替代--zookeeper

  • KNIME服务器相关接口的实现

    weixin_40246024: 大佬,文中提到的《KNIME服务预研》这个文档是在哪里看,没找到,能不能提供一下呀

  • KNIME数据库扩展指南

    Scandium947: 表情包可不可以咨询一下KNIME怎么实现临近算法之类的问题

  • 解决zookeeper is not a recognized option问题

    wesley_wwk: 我手敲了一般,不行

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • OpenStack搭建与基本配置教程
  • linux写一个脚本查询数据库下所有表的数据
  • linux /dev/mapper/rhel-root分区扩容
2023年2篇
2022年6篇
2021年55篇
2020年5篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司宜春网站优化按天收费价格盐城至尊标王推荐同乐网站建设公司巢湖网页制作泉州如何制作网站报价苏州SEO按天计费推荐红河网站开发价格荷坳SEO按天扣费公司河源网站优化推广价格郴州关键词排名推荐漳州网络营销公司四平seo排名价格荆门企业网站设计推荐保山如何制作网站临夏百度标王报价福州设计公司网站报价娄底百度网站优化公司丽江百度网站优化排名报价淮北阿里店铺运营多少钱上饶关键词按天收费报价梅州阿里店铺托管推荐娄底模板推广公司聊城网站关键词优化衡阳关键词按天收费价格南通至尊标王价格杭州网站设计公司通辽建设网站公司扬州网站推广工具公司乐山网站开发报价吉祥百度标王歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化