我正在研究 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) 我是一个初学者。当我学习了tensorflow的程序员指南时,我试图定义一个用于“估计器”的dataset_input_fn函数。我遇到了一个奇怪的错误,它表明:
INFO:tensorflow:使用默认配置。
INFO:tensorflow:使用配置:{'_model_dir':'/ model','_tf_random_seed':无,'_save_summary_steps':100,'_save_checkpoints_steps':无,'_save_checkpoints_secs':600,'_session_config':无,'_keep :5,5,'_keep_checkpoint_every_n_hours':10000,'_log_step_count_steps':100,'_service':无,'_cluster_spec':,'_task_type':'worker','_task_id':0,'_global_id_in_cluster':0,'_master': '','_evaluation_master':'','_is_chief':True,'_num_ps_replicas':0,'_num_worker_replicas':1}
INFO:tensorflow:调用model_fn。
INFO:tensorflow:完成调用model_fn。
INFO:tensorflow:创建CheckpointSaverHook。
INFO:tensorflow:Graph已完成。
2018-03-12 10:22:14.699465:IC:\ tf_jenkins \ workspace \ rel-win \ M \ windows \ PY \ 36 \ tensorflow \ core \ platform \ cpu_feature_guard.cc:140]您的CPU支持此TensorFlow二进制文件的指令未编译使用:AVX2
INFO:tensorflow:正在运行local_init_op。
INFO:tensorflow:已运行local_init_op。
2018-03-12 10:22:15.913858:WC:\ tf_jenkins \ workspace \ rel-win \ M \ windows \ PY \ 36 \ tensorflow \ core \ framework \ op_kernel.cc:1202] OP_REQUIRES在iterator_ops.cc:870失败:无效的参数:预期的图像(JPEG,PNG或GIF),文件为空[[节点:DecodeJpeg = DecodeJpegacableable_fraction = 1,channels = 0,dct_method =“”,fancy_upscaling = true,ratio = 1,try_recover_truncated = false]
追溯(最近一次通话):文件“ F:\ Anaconda3 \ lib \ site-packages \ …
在检测圆圈之前,我正在用red通道替换green通道。替换通道后,我将其通过模糊过滤器,然后进行霍夫变换以检测圆圈。但是当我这样做时,我收到一条糟糕的错误消息:
OpenCV(3.4.1) Error: Assertion failed (!_image.empty() && _image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && (_image.isMat() ||
_image.isUMat())) in HoughCircles, file /io/opencv/modules/imgproc/src/hough.cpp, line 1659
Traceback (most recent call last):
File "circle_light.py", line 44, in <module>
param1=param1,param2=param2,minRadius=minRadius,maxRadius=maxRadius)
cv2.error: OpenCV(3.4.1) /io/opencv/modules/imgproc/src/hough.cpp:1659: error: (-215) !_image.empty()
&& _image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && (_image.isMat() || _image.isUMat()) in function HoughCircles
Run Code Online (Sandbox Code Playgroud)
我无法理解它,因此无法理解我可能做错了什么。这是我所做的事情的片段。
import cv2
img = cv2.imread("images/{}".format("img.png"), 1) …Run Code Online (Sandbox Code Playgroud) python opencv image-processing computer-vision hough-transform
我有形状数组(height, width, 4),即 RGBA 格式,我想将其转换为灰度。原始数组的 RGB 值为 0,并且图片完全基于白色背景上的 alpha 值进行渲染,因此将其转换为灰度的传统方法会失败(例如,cv2.cvtColor(img,cv2.COLOR_RGBA2GRAY))。
源图片:
我需要用我训练的卷积神经网络的数据测试结果编写一个文件。数据包括语音数据收集。文件格式需要为“文件名,预测”,但我很难提取文件名。我像这样加载数据:
import torchvision
from torchvision import transforms
from torch.utils.data import DataLoader
TEST_DATA_PATH = ...
trans = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,))
])
test_dataset = torchvision.datasets.MNIST(
root=TEST_DATA_PATH,
train=False,
transform=trans,
download=True
)
test_loader = DataLoader(dataset=test_dataset, batch_size=1, shuffle=False)
Run Code Online (Sandbox Code Playgroud)
我正在尝试按如下方式写入文件:
f = open("test_y", "w")
with torch.no_grad():
for i, (images, labels) in enumerate(test_loader, 0):
outputs = model(images)
_, predicted = torch.max(outputs.data, 1)
file = os.listdir(TEST_DATA_PATH + "/all")[i]
format = file + ", " + str(predicted.item()) + '\n'
f.write(format)
f.close()
Run Code Online (Sandbox Code Playgroud)
问题os.listdir(TESTH_DATA_PATH + "/all")[i]在于它与加载的文件顺序不同步test_loader。我能做什么?
我正在按照本指南在 Raspberry Pi3B 上从头开始构建 Pytorch。由于某种原因,出现错误:
Building wheel torch-1.2.0a0+f13fadd
-- Building version 1.2.0a0+f13fadd
cmake --build . --target install --config Release -- -j 4
make: *** No rule to make target 'install'. Stop.
Run Code Online (Sandbox Code Playgroud)
当我打电话时python3 setup.py build。我正在运行 Python 3.5 版本,我不确定为什么这似乎失败了。
所以我目前正在构建一个 2 通道(也称为双通道)卷积神经网络,用于测量 2 个(二进制)图像之间的相似性。
我遇到的问题如下:
我的输入图像是 40 x 50,在 1 个卷积层和 1 个池化层之后(例如),输出大小是 18 x 23。那么如何在不以非整数输出大小结束的情况下进行更多池化呢?例如,将大小为 2 x 2 的 18 x 23 图像池化,输出大小为 9 x 11.5。
我似乎找不到任何合适的内核大小来避免这样的问题,在我看来,这是因为原始输入图像尺寸不是 2 的幂。例如,大小为 64 x 64 的输入图像没有有正确的填充大小等问题。
任何帮助深表感谢。
我在需要 CUDA 10 的 docker 容器中部署应用程序。这是运行应用程序使用的一些底层 pytorch 功能所必需的。
但是,主机服务器正在运行 docker ce 17、Nvidia-docker v 1.0 和 CUDA 版本 9,我将无法升级主机。
我的印象是我被铐在主机上可用的 v1 nvidia docker 运行时和 CUDA 版本上。
有没有办法在容器上运行 CUDA 10 以便我可以利用这个工具包的功能?
我正在训练一个已经训练了几天的分类器,但我的问题是我没有在整个训练过程中编写代码来保存 .pt 检查点,所以我最终只会得到一个权重文件当程序完成其所有时期时。有没有办法立即暂停训练(PAUSE BREAK)并保存模型的权重?
处理高维数据在机器学习中很常见。例如,在卷积神经网络 (CNN) 中,每个输入图像的尺寸可以是 256x256,并且每个图像可以具有 3 个颜色通道(红色、绿色和蓝色)。如果我们假设模型一次接收一批 16 张图像,则进入 CNN 的输入的维度为[16,3,256,256]。每个单独的卷积层都期望 形式的数据[batch_size, in_channels, in_y, in_x],并且所有这些数量通常会逐层变化(batch_size 除外)。我们用于表示由值组成的矩阵的术语[in_y, in_x]是“特征映射”,这个问题涉及在给定层的每个特征映射中查找最大值及其索引。
我为什么要这样做?我想对每个特征图应用一个掩码,并且我想应用以每个特征图中的最大值为中心的掩码,为此,我需要知道每个最大值所在的位置。这种掩模应用是在模型的训练和测试期间完成的,因此效率对于减少计算时间至关重要。有许多 Pytorch 和 Numpy 解决方案可用于查找单例最大值和索引,以及查找沿单个维度的最大值或索引,但没有(我能找到)专用且高效的内置函数来查找最大值的索引一次沿着 2 个或更多维度。是的,我们可以嵌套在单个维度上运行的函数,但这些是一些效率最低的方法。
k=1根据所提出的问题需要这样做,从而发展为常规torch.max调用。如果我问有关效率的问题,我需要清楚地详细说明期望。我正在尝试为上述问题找到一种省时的解决方案(空间是次要的),而无需编写 C …
python ×8
pytorch ×6
opencv ×2
cmake ×1
cuda ×1
dataloader ×1
docker ×1
max ×1
numba ×1
numpy ×1
python-3.x ×1
raspberry-pi ×1
rgba ×1
tensorflow ×1
torchvision ×1