def __init__(self, v_threshold=1.0, v_reset=0.0): super().__init__() self.conv = nn.Sequential( nn.Conv2d(1, 128, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(128), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset), nn.MaxPool2d(2, 2), # 14 * 14 nn.Conv2d(128, 128, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(128), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.MaxPool2d(2, 2) # 7 * 7 ) self.fc = nn.Sequential( nn.Flatten(), layer.Dropout(0.7), nn.Linear(128 * 7 * 7, 128 * 3 * 3, bias=False), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset), layer.Dropout(0.7), nn.Linear(128 * 3 * 3, 128, bias=False), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Linear(128, 100, bias=False), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset) ) self.boost = nn.AvgPool1d(10, 10)
def __init__(self, v_threshold=1.0, v_reset=0.0): super().__init__() self.train_times = 0 self.max_test_acccuracy = 0 self.conv = nn.Sequential( nn.Conv2d(3, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Conv2d(256, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Conv2d(256, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.MaxPool2d(2, 2), # 16 * 16 nn.Conv2d(256, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Conv2d(256, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Conv2d(256, 256, kernel_size=3, padding=1, bias=False), nn.BatchNorm2d(256), neuron.IFNode(v_threshold=v_threshold, v_reset=v_reset), nn.MaxPool2d(2, 2) # 8 * 8 ) self.fc = nn.Sequential( nn.Flatten(), layer.Dropout(0.5), nn.Linear(256 * 8 * 8, 128 * 4 * 4, bias=False), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset), nn.Linear(128 * 4 * 4, 100, bias=False), neuron.PLIFNode(v_threshold=v_threshold, v_reset=v_reset)) self.boost = nn.AvgPool1d(10, 10)