Mtazamo wa Msanidi Programu: Neural Cellular Automata ya Azimio la Juu
Sanaa na hisabati hukutana katika kujifunza kwa mashine (machine learning).
Cellular automata hutumia gridi ya seli. Kila seli hubadilisha hali yake kulingana na sheria zilizowekwa. Conway's Game of Life ni mfano maarufu. Unafuata sheria rahisi ili kuunda mifumo tata.
Neural Cellular Automata (NCA) inabadilisha hili. Badala ya sheria zilizowekwa, mtandao wa neva (neural network) hujifunza sheria hizo kutoka kwenye data. Mtandao huo hutabiri hali inayofuata ya seli kwa kuangalia majirani zake. Hii huzalisha taswira za kustaajabisha na zisizo za kawaida.
Kuzalisha picha za azimio la juu ni vigumu. Gridi inapokua, hisabati inakuwa tata sana kwa mtandao huo.
Ninatumia mbinu inayoitwa pixel shuffle ili kurekebisha hili.
- Ninapunguza azimio la gridi (downsample) hadi azimio la chini.
- Ninafundisha mtandao kwenye gridi hii ndogo.
- Ninapandisha azimio la matokeo (upsample) ili kupata picha ya azimio la juu.
Unaweza kutekeleza hili ukitumia PyTorch. Hapa kuna njia rahisi ya kuunda muundo wa modeli ya NCA:
import torch import torch.nn as nn import torch.optim as optim
class NCA(nn.Module): def init(self): super(NCA, self).init() self.conv = nn.Conv2d(3, 64, kernel_size=3, padding=1)
def forward(self, x):
x = torch.relu(self.conv(x))
x = torch.max_pool2d(x, 2)
x = torch.relu(self.conv(x))
x = torch.max_pool2d(x, 2)
return x
NCA inakuwezesha kuziba pengo kati ya kodi na sanaa ya kidijitali. Ni uwanja wenye utafiti mwingi kwa ajili ya uonyeshaji wa kisayansi (scientific visualization) na usanifu wa ubunifu.
Optional learning community: https://t.me/GyaanSetuAi