Skip to content

Instantly share code, notes, and snippets.

@lisitsyn
Created September 27, 2012 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lisitsyn/3795078 to your computer and use it in GitHub Desktop.
Save lisitsyn/3795078 to your computer and use it in GitHub Desktop.
import csv
import numpy
import time,datetime
import modshogun
import cPickle
vars = {}
# operational context
class operation(object):
# entering message to be printed, assumed to have two string parameters (timestamp and message)
__enter__message = '[%s] \033[1;34mStarting %s\033[0m'
# exit message to be printed, assumed to have three string parameters (timestamp, message and time passed)
__exit__message = '[%s] \033[0;31mFinished %s, took %fs\033[0m'
def __init__(self, msg):
self.msg = msg
self.parameters = {}
def __enter__(self):
self.start = time.time()
print operation.__enter__message % (datetime.datetime.now(),self.msg)
return self
def __exit__(self, type, value, traceback):
for (k,v) in self.parameters.items():
with open('%s.dat' % k, 'wb') as output_file:
cPickle.dump(v,output_file)
print operation.__exit__message % (datetime.datetime.now(), self.msg, time.time()-self.start)
return True
def __getattr__(self,name):
if name in vars.keys():
return vars[name]
raise Exception("Parameter %s is not in the context" % name)
def __setattr__(self,name,value):
if name in ['msg', 'parameters','start']:
object.__setattr__(self,name,value)
else:
self.parameters[name] = value
vars[name] = value
def __str__(self):
return self.msg
with operation('reading files') as context:
context.train_data = numpy.loadtxt('train.csv',delimiter=",",skiprows=1)
context.test_data = numpy.loadtxt('test.csv',delimiter=",",skiprows=1)
with operation('training model') as context:
context.classifier = modshogun.MulticlassLibLinear()
context.train_features = modshogun.ByteFeatures(context.train_data)
context.test_features = modshogun.ByteFeatures(context.test_data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment