diff --git a/bindsnet/datasets/torchvision_wrapper.py b/bindsnet/datasets/torchvision_wrapper.py index 82ce3b40e..8bb466d73 100644 --- a/bindsnet/datasets/torchvision_wrapper.py +++ b/bindsnet/datasets/torchvision_wrapper.py @@ -31,8 +31,8 @@ class torchvision_dataset_wrapper(ds_type): def __init__( self, - image_encoder: Optional[Encoder], - label_encoder: Optional[Encoder], + image_encoder: Optional[Encoder] = None, + label_encoder: Optional[Encoder] = None, *args, **kwargs ): diff --git a/examples/mnist/eth_mnist.py b/examples/mnist/eth_mnist.py index e16b3d8c3..62be621df 100644 --- a/examples/mnist/eth_mnist.py +++ b/examples/mnist/eth_mnist.py @@ -4,9 +4,12 @@ import numpy as np import matplotlib.pyplot as plt +from torchvision import transforms + from time import time as t from bindsnet.datasets import MNIST +from bindsnet.encoding import PoissonEncoder from bindsnet.encoding import poisson_loader from bindsnet.models import DiehlAndCook2015 from bindsnet.network.monitors import Monitor @@ -80,11 +83,30 @@ network.add_monitor(inh_voltage_monitor, name="inh_voltage") # Load MNIST data. -images, labels = MNIST( - path=os.path.join("..", "..", "data", "MNIST"), download=True -).get_train() -images = images.view(-1, 784) -images *= intensity +# images, labels +dataset = MNIST( + None, + None, + root=os.path.join("..", "..", "data", "MNIST"), + download=True, + transform=transforms.Compose( + [ + transforms.ToTensor(), + transforms.Lambda(lambda x: x * intensity), + transforms.Lambda(lambda x: x.view(784)), + ] + ), +) +# .get_train() + +images = [] +labels = [] + +for i in range(len(dataset)): + sample = dataset[i] + images.append(sample["image"]) + labels.append(sample["label"]) + # Lazily encode data as Poisson spike trains. data_loader = poisson_loader(data=images, time=time, dt=dt)