Input pytorch的二进制输入

Input pytorch的二进制输入,input,binary,loader,pytorch,Input,Binary,Loader,Pytorch,请问如何使pytorch中加载的数据在加载后变成二进制? 与Tensorflow一样,Tensorflow可以通过以下方式实现: train_data = mnist.input_data.read_data_sets(data_directory, one_hot=True) pytorch如何实现one\u hot=True效果 我现在拥有的数据加载程序是: torch.set_default_tensor_type('torch.FloatTensor') train_loader =

请问如何使pytorch中加载的数据在加载后变成二进制? 与Tensorflow一样,Tensorflow可以通过以下方式实现:

train_data  = mnist.input_data.read_data_sets(data_directory, one_hot=True)
pytorch如何实现
one\u hot=True
效果

我现在拥有的数据加载程序是:

torch.set_default_tensor_type('torch.FloatTensor')
train_loader = torch.utils.data.DataLoader(
        datasets.MNIST('data/', train=True, download=True,
                       transform=transforms.Compose([
                         # transforms.RandomHorizontalFlip(),
                           transforms.ToTensor()])),
        batch_size=batch_size, shuffle=False)
我想使列车装载机中的数据进行二值化。 现在我要做的是:加载数据后

for data,_ in train_loader:
    torch.round(data) 
    data = Variable(data)

使用
torch.round()
功能。这是正确的吗?

一个热门的编码思想用于分类。听起来您可能正在尝试创建一个自动编码器

如果您正在创建自动编码器,则无需舍入,因为BCELoss可以处理介于0和1之间的值。注意:训练时,最好不要使用S形,而是使用,因为它提供了数值稳定性

下面是一个带有MNIST的示例

如果您尝试进行分类,则不需要一个热向量,您只需输出等于类数的神经元数,即MNIST输出10个神经元,然后将其与具有相应预期类值的LongSensor一起传递


下面是一个on MNIST的示例

pytorch库中没有函数。你能提供你所期望的和你所拥有的吗?届时我们将能够帮助您。是编辑帮助~?因为我正在计算二进制交叉熵损失(nn.BCELoss()。在pytorch.org中,这是通过pass sigmoid(x)完成的。我想知道我是否可以让x首先是二进制的。在输入过程中会使输入图像二值化,对神经网络产生影响~?首先,我不明白二值化输入是什么意思?您拥有表示像素值的图像数据。所以,我不清楚为什么需要对输入进行二值化。此外,
sigmoid(x)
与二值化有何关系?你能先定义二值化吗?另外,编辑你的问题,清楚地解释你现在有什么以及你想要什么。哦,这就像二值化/阈值化。即,使输入图像的像素值仅为0和1,看起来只有黑白。Sigmoid输出数字介于0-1之间,nn.BCSLoss()采用0-1之间的数字,使用Sigmoid是pythorch doc所说的。您应该指定如何准确地对输入图像进行二值化,通过某种阈值(例如,128以下的像素值设置为0,高于128的像素值设置为1)或其他方式?目前,你的帖子中缺少了它,这使得你的问题很难回答。