Skip to content

Instantly share code, notes, and snippets.

net = Net()
net.to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)
train_loss, val_loss = [], []
train_acc, val_acc = [], []
for epoch in range(500):
train_running_loss = 0.0
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
filters_start = 32
layer_filters = filters_start
filters_growth = 32
strides_start = 1
strides_end = 2
depth = 4
n_blocks = 6
class Conv2dBlock(nn.Module):
def __init__(self, depth, layer_filters, filters_growth,
strides_start, strides_end, input_shape, first_layer=False):
super(Conv2dBlock, self).__init__()
layers = []
c_in_channels = layer_filters
for i in range(depth):
if first_layer:
layers.append(nn.Conv2d(in_channels=1,
kernel_size=3,
batch_size = 32
dataset = PhysioNetDataset(ref_file='training2017/REFERENCE.csv', data_dir='training2017')
train_size = int(0.7*len(dataset))
train_set, val_set = random_split(dataset, [train_size, len(dataset)-train_size])
train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=4)
val_loader = DataLoader(val_set, batch_size=batch_size, shuffle=True, num_workers=4)
import os
import pandas as pd
from torch.utils.data import Dataset
class PhysioNetDataset(Dataset):
def __init__(self, ref_file, data_dir):
self.ref_file = ref_file
self.data_dir = data_dir
self.ref_frame = pd.read_csv(ref_file, names=['mat', 'label'])
from scipy import signal
def spectrogram(data, fs=300, nperseg=64, noverlap=32):
f, t, Sxx = signal.spectrogram(data, fs=fs, nperseg=nperseg, noverlap=noverlap)
Sxx = np.transpose(Sxx, [0, 2, 1])
Sxx = np.abs(Sxx)
mask = Sxx > 0
Sxx[mask] = np.log(Sxx[mask])
return f, t, Sxx
def zero_pad(data, length):
extended = np.zeros(length)
siglength = np.min([length, data.shape[0]])
extended[:siglength] = data[:siglength]
return extended
# plot a sample
data = sio.loadmat('training2017/A00001.mat')['val'][0]
# 61 seconds is the maximum length in our dataset
import numpy as np
import scipy.io as sio
import matplotlib.pyplot as plt
# plot 10 seconds
secs = 10
# maximum length of ECG recording is 61 seconds
max_length = 61

Keybase proof

I hereby claim:

  • I am pbnsilva on github.
  • I am pbnsilva (https://keybase.io/pbnsilva) on keybase.
  • I have a public key whose fingerprint is 88AA DC61 1A86 0938 E6B0 4024 2196 9819 5B83 83A5

To claim this, I am signing this object:

@pbnsilva
pbnsilva / mf.go
Created March 17, 2017 08:25
Matrix Factorization in Golang
package main
import (
"fmt"
"math"
"math/rand"
"github.com/skelterjohn/go.matrix"
)