类型错误:“int”对象在张量中不可调用

问题描述 投票:0回答:1

我有大小为 (1980,21,20,2560) 的特征张量和大小为 (1980,21,20,1) 的标签张量,然后我想使用它们运行 cnn 模型,但在数据加载器部分面临问题。所以在特征张量中,我有 20 行和 2560 列的矩阵,每个 ros 与标签张量中提到的 1 或 0 相关联。每个张量的深度为 21,总共有 1980 个张量

import torch
from torch.utils.data import TensorDataset, DataLoader

total_samples = len(features_tensor)
train_size = int(0.7 * total_samples)
test_size = total_samples - train_size


train_dataset, test_dataset = torch.utils.data.random_split(
    TensorDataset(features_tensor, label_tensor), [train_size, test_size]
)

batch_size_value = 16

# Create DataLoaders for training and testing sets
train_dataloader = DataLoader(train_dataset, batch_size=batch_size_value, shuffle=True)
test_dataloader = DataLoader(test_dataset, batch_size=batch_size_value, shuffle=True)

这是代码片段,我收到错误 train_dataset, test_dataset = torch.utils.data.random_split( ---> 10 TensorDataset(features_tensor, label_tensor), [train_size, test_size] 11)

类型错误:“int”对象不可调用

python pytorch
1个回答
0
投票

我运行了这段代码:

import torch
from torch.utils.data import TensorDataset, DataLoader

# you didn't add the tensors, so i added that
features_tensor = torch.randn((100, 32))
label_tensor = torch.randint(low=0, high=10, size=(100,))

total_samples = len(features_tensor)
train_size = int(0.7 * total_samples)
test_size = total_samples - train_size


train_dataset, test_dataset = torch.utils.data.random_split(
    TensorDataset(features_tensor, label_tensor), [train_size, test_size]
)

batch_size_value = 16

# Create DataLoaders for training and testing sets
train_dataloader = DataLoader(train_dataset, batch_size=batch_size_value, shuffle=True)
test_dataloader = DataLoader(test_dataset, batch_size=batch_size_value, shuffle=True)

这段代码运行得很好,所以我认为这是与较大代码相关的问题。

我找不到错误的原因,因为我没有你的代码,但我认为你不小心已经创建了一个整数变量

TensorDataset
,并且python不小心尝试运行它

© www.soinside.com 2019 - 2024. All rights reserved.