diff --git a/data.py b/data.py
index 44420eea5d9b5e96585c94a9a50d418ee6b3979f..fc83570b23b74e3481db030321c09f5093a46d7b 100644
--- a/data.py
+++ b/data.py
@@ -22,7 +22,7 @@ class DataSet():
         """
         self.seq_length = seq_length
         self.class_limit = class_limit
-        self.sequence_path = './data/sequences/'
+        self.sequence_path = os.path.join('data', 'sequences')
         self.max_frames = 300  # max number of frames a video can have for us to use it
 
         # Get the data.
@@ -39,7 +39,7 @@ class DataSet():
     @staticmethod
     def get_data():
         """Load our data from file."""
-        with open('./data/data_file.csv', 'r') as fin:
+        with open(os.path.join('data', 'data_file.csv'), 'r') as fin:
             reader = csv.reader(fin)
             data = list(reader)
 
@@ -203,14 +203,14 @@ class DataSet():
     def get_frames_for_sample(sample):
         """Given a sample row from the data file, get all the corresponding frame
         filenames."""
-        path = './data/' + sample[0] + '/' + sample[1] + '/'
+        path = os.path.join('data', sample[0], sample[1])
         filename = sample[2]
-        images = sorted(glob.glob(path + filename + '*jpg'))
+        images = sorted(glob.glob(os.path.join(path, filename + '*jpg')))
         return images
 
     @staticmethod
     def get_filename_from_image(filename):
-        parts = filename.split('/')
+        parts = filename.split(os.path.sep)
         return parts[-1].replace('.jpg', '')
 
     @staticmethod
diff --git a/extract_features.py b/extract_features.py
index e14bce46ef3f29b2af7a8f17edc56e5ce457f279..b424e84b1dbf09cb74fce3068da951b87d2e94c4 100644
--- a/extract_features.py
+++ b/extract_features.py
@@ -32,8 +32,8 @@ pbar = tqdm(total=len(data.data))
 for video in data.data:
 
     # Get the path to the sequence for this video.
-    path = './data/sequences/' + video[2] + '-' + str(seq_length) + \
-        '-features.txt'
+    path = os.path.join('data', 'sequences', video[2] + '-' + str(seq_length) + \
+        '-features.txt')
 
     # Check if we already have it.
     if os.path.isfile(path):
diff --git a/validate_cnn.py b/validate_cnn.py
index 5cb7b3918dcf41948a1ebbfa2cf4d4ed47ff1cf0..7f30b40a96d038af411a7e79989e75a1c45b282f 100644
--- a/validate_cnn.py
+++ b/validate_cnn.py
@@ -5,6 +5,7 @@ import numpy as np
 import operator
 import random
 import glob
+import os.path
 from data import DataSet
 from processor import process_image
 from keras.models import load_model
@@ -15,7 +16,7 @@ def main(nb_images=5):
     model = load_model('data/checkpoints/inception.057-1.16.hdf5')
 
     # Get all our test images.
-    images = glob.glob('./data/test/**/*.jpg')
+    images = glob.glob(os.path.join('data', 'test', '**', '*.jpg'))
 
     for _ in range(nb_images):
         print('-'*80)