Skip to content

Commit 07fc221

Browse files
committed
Fix zero division
1 parent 4373915 commit 07fc221

File tree

5 files changed

+14
-8
lines changed

5 files changed

+14
-8
lines changed

bottle_air/db.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ def load_csvs(file_list):
232232
ceil = float(max(column))
233233
norms[header] = (floor, ceil)
234234
if ceil == floor:
235-
data[header] = 0
235+
data[header] = [0] * len(column)
236236
else:
237237
data[header] = [(x-floor)/(ceil - floor) for x in column] #NEQP (Si es buena idea normalizar SIEMPRE entre -1 y 1? Tambien he visto normalizaciones mas grandes o pequenias, creo, dependiendo de la naturaleza de los datos)
238238

bottle_air/model.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,9 @@ def init_model(self):
199199
model.compile(loss='mse',
200200
optimizer=optimizer,
201201
metrics=['accuracy'])
202-
nb_epoch = 30
202+
nb_epoch = 100
203203
if persist:
204-
nb_epoch = 200
204+
nb_epoch = 300
205205

206206
model_name = str(hp).replace('{', '').replace('}', '')
207207
if persist:
@@ -289,13 +289,17 @@ def normalize_float(self, val, header, reverse=False):
289289
"""
290290
if reverse:
291291
return val * (self.norms[header][1] - self.norms[header][0]) + self.norms[header][0]
292+
293+
# Avoid division by zero for zeroed out columns.
294+
if self.norms[header][1] == self.norms[header][0]:
295+
return val
292296
return (val-self.norms[header][0])/(self.norms[header][1] - self.norms[header][0])
293297

294298
def normalize_values(self, values):
295299
""" Normalizes all non-string features in 'values'. """
296300
for header, column in values.iteritems():
297301
if self.types[header] != 'str':
298-
values[header] = [self.normalize_float(float(x), header) for x in column]
302+
values[header] = [self.normalize_float(float(x) if x else 0.0, header) for x in column]
299303

300304
def intergerize_string(self, data):
301305
""" Transforms all string features into integer arrays. """

bottle_air/server.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ def infer():
162162

163163
if 'values' not in args:
164164
return json.dumps({'status': 'ERROR', 'why': 'No values specified'})
165-
print(args['handle'])
166-
print(args['values'])
165+
print args['handle']
166+
print args['values']
167167
outputs = model.infer(json.loads(args['values']))
168168
return json.dumps({'status': 'OK', 'result': outputs})
169169

@@ -176,4 +176,4 @@ def infer():
176176
args = parser.parse_args()
177177

178178
config.tf_server = tf.train.Server.create_local_server()
179-
run(app, reloader=True, host='localhost', port=8012, server='cherrypy')
179+
run(app, reloader=True, host='0.0.0.0', port=8012, server='cherrypy')

reqs.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ certifi==2017.4.17
77
cffi==1.10.0
88
cheroot==5.4.0
99
CherryPy==8.9.0
10-
cryptography==1.8.1
10+
cryptography==2.2.2
1111
decorator==4.0.11
1212
enum34==1.1.6
1313
funcsigs==1.0.2

start.sh

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ virtualenv --distribute .
1414

1515
source bin/activate
1616

17+
easy_install distribute
18+
1719
pip install --upgrade pip
1820

1921
pip install -r reqs.txt

0 commit comments

Comments
 (0)