我在对pytorch 中的 MNIST 数据集的2 个隐藏层的全连接深度神经网络进行分类时遇到问题。
我想在两个隐藏层中都使用tanh作为激活,但最后,我应该使用softmax。
对于损失,我选择nn.CrossEntropyLoss()了 PyTORch,它(正如我发现的那样)不想将单热编码标签作为真正的标签,而是采用 LongTensor 类。
我的模型是nn.Sequential(),当我最终使用 softmax 时,它在测试数据的准确性方面给了我更糟糕的结果。为什么?
import torch
from torch import nn
inputs, n_hidden0, n_hidden1, out = 784, 128, 64, 10
n_epochs = 500
model = nn.Sequential(
nn.Linear(inputs, n_hidden0, bias=True),
nn.Tanh(),
nn.Linear(n_hidden0, n_hidden1, bias=True),
nn.Tanh(),
nn.Linear(n_hidden1, out, bias=True),
nn.Softmax() # SHOULD THIS BE THERE?
)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.5)
for epoch in range(n_epochs):
y_pred = model(X_train)
loss = criterion(y_pred, …Run Code Online (Sandbox Code Playgroud) 我需要找到两个三维点云之间的变换和旋转差异.为此,我正在寻找PCL,因为它看起来很理想.
关于干净的测试数据我有迭代最近点工作,但给出了奇怪的结果(虽然我可能已经错误地实现了...)我有pcl::estimateRigidTransformation工作,看起来更好,虽然我认为会更糟糕的数据噪音.
我的问题是:
这两个云会很吵,虽然它们应该包含相同的点,但会有一些差异.处理这个问题的最佳方法是什么?
我应该在两个云中找到相应的功能开始然后使用estimateTransform吗?或者我应该看一个RANSAC删除异常值的函数?是ICP一个更好的方式去estimateRigidTransform?
我是初学者,正在学习编写图像分类器。我的目标是创建一个预测函数。
有什么建议可以修复它吗?
在这个项目中,我想使用预测功能来识别不同的花种。所以我可以稍后检查他们的标签。
尝试修复:不幸的是,错误仍然存在。我已经尝试过这些代码:
img = process_image(Image.open(image))
img = torch.from_numpy(img).type(torch.FloatTensor)
Run Code Online (Sandbox Code Playgroud)
这是我现在需要修复的错误。
AttributeError: 'JpegImageFile' 对象没有属性 'read'
代码:
# Imports here
import pandas as pd
import numpy as np
import torch
from torch import nn
from torchvision import datasets, transforms, models
import torchvision.models as models
import torch.nn.functional as F
import torchvision.transforms.functional as F
from torch import optim
import json
from collections import OrderedDict
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
from PIL import Image
def …Run Code Online (Sandbox Code Playgroud) 我在Tensorflow中收到以下警告:UserWarning:将稀疏的IndexedSlices转换为未知形状的密集Tensor.这可能会消耗大量内存.
我得到这个的原因是:
import tensorflow as tf
# Flatten batch elements to rank-2 tensor where 1st max_length rows
#belong to first batch element and so forth
all_timesteps = tf.reshape(raw_output, [-1, n_dim]) # (batch_size*max_length, n_dim)
# Indices to last element of each sequence.
# Index to first element is the sequence order number times max
#sequence length.
# Index to last element is the index to first element plus sequence
#length.
row_inds = tf.range(0, batch_size) * max_length + (seq_len - 1)
# …Run Code Online (Sandbox Code Playgroud) 我无法在 PyTorch 中为 BERT 模型初始化组进程,我曾尝试使用以下代码进行初始化:
import torch
import datetime
torch.distributed.init_process_group(
backend='nccl',
init_method='env://',
timeout=datetime.timedelta(0, 1800),
world_size=0,
rank=0,
store=None,
group_name=''
)
Run Code Online (Sandbox Code Playgroud)
并尝试访问该get_world_size()功能:
num_train_optimization_steps = num_train_optimization_steps // torch.distributed.get_world_size()
Run Code Online (Sandbox Code Playgroud)
完整代码:
train_examples = None
num_train_optimization_steps = None
if do_train:
train_examples = processor.get_train_examples(data_dir)
num_train_optimization_steps = int(
len(train_examples) / train_batch_size / gradient_accumulation_steps) * num_train_epochs
if local_rank != -1:
import datetime
torch.distributed.init_process_group(backend='nccl',init_method='env://', timeout=datetime.timedelta(0, 1800), world_size=0, rank=0, store=None, group_name='')
num_train_optimization_steps = num_train_optimization_steps // torch.distributed.get_world_size()
print(num_train_optimization_steps)
Run Code Online (Sandbox Code Playgroud) 我一直在尝试修复此代码,但我在控制台上遇到此错误:
未捕获的ReferenceError:未定义checkLoginState.
我只是按照这个指南.这是我的函数代码,当我调用它时:
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
<fb:login-button data-max-rows="1" data-size="large" data-show-faces="false" data-auto-logout-link="true" onlogin="checkLoginState();" scope="public_profile, pages_show_list"></fb:login-button>
Run Code Online (Sandbox Code Playgroud) 我了解register_buffer 的作用以及register_buffer 和 register_parameters之间的区别。
但是 PyTorch 中缓冲区的准确定义是什么?
我正在尝试实现一个 CNN 来识别 MNIST 数据集中的数字,而我的代码在数据加载过程中出现了错误。我不明白为什么会这样。
import torch
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5), (0.5))
])
trainset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=20, shuffle=True, num_workers=2)
testset = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=20, shuffle=False, num_workers=2)
for i, data in enumerate(trainloader, 0):
inputs, labels = data[0], data[1]
Run Code Online (Sandbox Code Playgroud)
错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-6-b37c638b6114> in <module>
2
----> 3 for i, data in enumerate(trainloader, 0):
4 inputs, labels = data[0], …Run Code Online (Sandbox Code Playgroud) 我正在研究 NLP 问题并使用 PyTorch。由于某种原因,我的数据加载器返回格式错误的批次。我的输入数据包含句子和整数标签。这些句子可以是句子列表或标记列表列表。稍后我将在下游组件中将标记转换为整数。
list_labels = [ 0, 1, 0]
# List of sentences.
list_sentences = [ 'the movie is terrible',
'The Film was great.',
'It was just awful.']
# Or list of list of tokens.
list_sentences = [['the', 'movie', 'is', 'terrible'],
['The', 'Film', 'was', 'great.'],
['It', 'was', 'just', 'awful.']]
Run Code Online (Sandbox Code Playgroud)
我创建了以下自定义数据集:
import torch
from torch.utils.data import DataLoader, Dataset
class MyDataset(torch.utils.data.Dataset):
def __init__(self, sentences, labels):
self.sentences = sentences
self.labels = labels
def __getitem__(self, i):
result = {}
result['sentences'] = …Run Code Online (Sandbox Code Playgroud) python ×7
pytorch ×6
api ×1
c++ ×1
dataloader ×1
facebook ×1
html ×1
image ×1
javascript ×1
mnist ×1
php ×1
point-clouds ×1
softmax ×1
tensorflow ×1