Ini adalah jaringan saraf yang saya definisikan

class generator(nn.Module):
def __init__(self, n_dim, io_dim):
    super().__init__()
    self.gen = nn.Sequential(
        nn.Linear(n_dim,64),
        nn.LeakyReLU(.01),
        nn.Linear(64, io_dim),
    )

def forward(self, x):
    return self.gen(x)
#The input x is:
x = numpy.random.dirichlet([10,6,3],3)

Sekarang saya ingin jaringan saraf mengambil sampel terdistribusi dirichlet (diambil sampelnya menggunakan numpy.random.dirichlet([10,6,3],10) ) sebagai input. Bagaimana cara melakukannya?

0
Anik Chaudhuri 26 November 2020, 09:49

3 jawaban

Jawaban Terbaik

Alih-alih menggunakan numpy untuk mengambil sampel dari distribusi dirichlet, gunakan pytorch. Berikut kodenya:

y = torch.Tensor([[10,6,3]])
m = torch.distributions.dirichlet.Dirichlet(y)
z=m.sample()

gen = generator(3,3)
gen(z)
0
Anik Chaudhuri 26 November 2020, 07:16

Anda perlu mengonversi numpy.array ke torch.Tensor:

input_tensor = torch.from_numpy(x)

0
Craig.Li 26 November 2020, 07:05

Untuk memasukkan array NumPy ke jaringan saraf di PyTorch, Anda perlu mengonversi numpy.array ke torch.Tensor. Untuk melakukan itu, Anda perlu mengetikkan kode berikut.

input_tensor = torch.from_numpy(x)

Setelah ini, numpy.array Anda dikonversi menjadi torch.Tensor.

0
Aanshumaan Shrijai 26 November 2020, 07:13