Skip to content

Commit

Permalink
cleanup models, refactor keras_runner, fix model running
Browse files Browse the repository at this point in the history
add lfs
cherry pick of "moving larte files to lfs"
use new model
Re-implement split loading
fix models
remove pathlib dep
final fix to submodules

remove panda temp

readd panda submodule
  • Loading branch information
SippieCup committed Apr 18, 2020
1 parent f374e9b commit 78dc78c
Show file tree
Hide file tree
Showing 15 changed files with 31 additions and 120 deletions.
10 changes: 5 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "panda"]
path = panda
url = https://github.com/boggyver/panda.git
[submodule "opendbc"]
path = opendbc
url = https://github.com/boggyver/opendbc.git
url = git@github.com:BogGyver/opendbc.git
[submodule "laika_repo"]
path = laika_repo
url = https://github.com/commaai/laika.git
Expand All @@ -12,4 +9,7 @@
url = https://github.com/commaai/openpilot-apks.git
[submodule "cereal"]
path = cereal
url = https://github.com/boggyver/cereal.git
url = [email protected]:BogGyver/cereal.git
[submodule "panda"]
path = panda
url = [email protected]:BogGyver/panda.git
1 change: 1 addition & 0 deletions cereal
Submodule cereal added at c1ca63
4 changes: 2 additions & 2 deletions models/dmonitoring_model.keras
Git LFS file not shown
1 change: 0 additions & 1 deletion models/dmonitoring_model.model.keras

This file was deleted.

3 changes: 0 additions & 3 deletions models/dmonitoring_model.weights.keras

This file was deleted.

Binary file modified models/dmonitoring_model_q.dlc
Binary file not shown.
4 changes: 2 additions & 2 deletions models/supercombo.keras
Git LFS file not shown
4 changes: 3 additions & 1 deletion models/supercombo.model.keras

Large diffs are not rendered by default.

Binary file modified models/supercombo.weights.keras
Binary file not shown.
1 change: 1 addition & 0 deletions opendbc
Submodule opendbc added at 7ae689
2 changes: 1 addition & 1 deletion panda
Submodule panda updated 71 files
+2 −17 .circleci/config.yml
+1 −1 VERSION
+3 −3 board/build.mk
+21 −45 board/drivers/can.h
+175 −0 board/drivers/lin.h
+56 −92 board/drivers/llcan.h
+224 −0 board/drivers/uja1023.h
+4 −21 board/drivers/usb.h
+0 −2 board/get_sdk_mac.sh
+87 −0 board/inc/core_cmFunc.h
+87 −0 board/inc/core_cmInstr.h
+96 −0 board/inc/core_cmSimd.h
+23 −20 board/main.c
+5 −1 board/pedal/Makefile
+78 −0 board/pedal/enter_canloader.py
+30 −9 board/pedal/main.c
+1 −0 board/pedal_tesla/.gitignore
+85 −0 board/pedal_tesla/Makefile
+28 −0 board/pedal_tesla/README
+361 −0 board/pedal_tesla/main.c
+11 −0 board/pedal_tesla/main_declarations.h
+1 −1 board/power_saving.h
+15 −11 board/safety.h
+125 −0 board/safety/safety_cadillac.h
+3 −5 board/safety/safety_chrysler.h
+2 −2 board/safety/safety_defaults.h
+3 −8 board/safety/safety_ford.h
+3 −9 board/safety/safety_gm.h
+22 −39 board/safety/safety_honda.h
+8 −11 board/safety/safety_hyundai.h
+1 −1 board/safety/safety_mazda.h
+43 −51 board/safety/safety_nissan.h
+4 −6 board/safety/safety_subaru.h
+1,937 −95 board/safety/safety_tesla.h
+289 −0 board/safety/safety_teslaradar.h
+16 −31 board/safety/safety_toyota.h
+169 −0 board/safety/safety_toyota_ipas.h
+6 −169 board/safety/safety_volkswagen.h
+3 −20 board/safety_declarations.h
+0 −1 board/spi_flasher.h
+24 −49 examples/can_unique.py
+6 −12 python/__init__.py
+185 −0 tests/automated/2_usb_to_can.py
+58 −0 tests/automated/3_wifi.py
+60 −0 tests/automated/4_wifi_functionality.py
+66 −0 tests/automated/5_wifi_udp.py
+195 −0 tests/automated/6_two_panda.py
+0 −42 tests/automated/7_can_loopback.py
+0 −38 tests/bulk_write_test.py
+4 −2 tests/pedal/enter_canloader.py
+2 −32 tests/safety/Dockerfile
+7 −185 tests/safety/common.py
+5 −2 tests/safety/libpandasafety_py.py
+2 −0 tests/safety/requirements.txt
+24 −18 tests/safety/test.c
+184 −0 tests/safety/test_cadillac.py
+56 −19 tests/safety/test_chrysler.py
+93 −96 tests/safety/test_gm.py
+19 −112 tests/safety/test_honda.py
+46 −0 tests/safety/test_honda_bosch.py
+95 −34 tests/safety/test_hyundai.py
+113 −66 tests/safety/test_nissan.py
+146 −73 tests/safety/test_subaru.py
+188 −103 tests/safety/test_toyota.py
+247 −0 tests/safety/test_toyota_ipas.py
+200 −91 tests/safety/test_volkswagen_mqb.py
+0 −289 tests/safety/test_volkswagen_pq.py
+9 −20 tests/safety_replay/Dockerfile
+8 −0 tests/safety_replay/requirements.txt
+0 −3 tests/safety_replay/requirements_extra.txt
+3 −3 tests/safety_replay/test_safety_replay.py
2 changes: 1 addition & 1 deletion selfdrive/controls/lib/lane_planner.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def update_d_poly(self, v_ego, md, alca ):
if self.shouldUseAlca and alca:
self.r_poly,self.l_poly,self.r_prob,self.l_prob,self.lane_width, self.p_poly = self.ALCAMP.update(v_ego, md, np.array(self.r_poly), np.array(self.l_poly), self.r_prob, self.l_prob, self.lane_width, self.p_poly)

self.d_poly = calc_d_poly(self.l_poly, self.r_poly, self.p_poly, self.l_prob, self.r_prob, self.lane_width)
self.d_poly = calc_d_poly(self.l_poly, self.r_poly, self.p_poly, self.l_prob, self.r_prob, self.lane_width,v_ego)

def update(self, v_ego, md, alca):
self.parse_model(md)
Expand Down
2 changes: 1 addition & 1 deletion selfdrive/modeld/models/driving.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// gate this here
#define TEMPORAL
#define DESIRE
#define TRAFFIC_CONVENTION
//#define TRAFFIC_CONVENTION

#ifdef QCOM
#include <eigen3/Eigen/Dense>
Expand Down
38 changes: 14 additions & 24 deletions selfdrive/modeld/runners/keras_runner.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env python
# TODO: why are the keras models saved with python 2?
from __future__ import print_function

Expand All @@ -8,9 +8,7 @@
import tensorflow.keras as keras
import numpy as np
from tensorflow.keras.models import Model
from tensorflow.keras.models import load_model
from pathlib import Path

from tensorflow.keras.models import model_from_json
def read(sz):
dd = []
gt = 0
Expand All @@ -29,43 +27,35 @@ def run_loop(m,name):
osize = m.outputs[0].shape[1]
int
print("ready to run keras model %d -> %d" % (isize, osize), file=sys.stderr)
cnt = 0
while 1:
if name == "supercombo":
cnt = (cnt + 1 ) % 100
if (cnt % 20 == 1):
print("Processing frame %d " % cnt, file=sys.stderr)
# check parent process, if ppid is 1, then modeld is no longer running and the runner should exit.
if os.getppid() == 1:
print("exiting due to Parent PID", file=sys.stderr)
#break
break
idata = read(isize).reshape((1, isize))
ret = m.predict_on_batch(idata)
if (cnt % 20 == 1):
print(ret, file=sys.stderr)
write(ret)

if __name__ == "__main__":
print(tf.__version__, file=sys.stderr)
# limit gram alloc
gpus = tf.config.experimental.list_physical_devices('GPU')
model_path = Path(sys.argv[1]).parents[0]
name = Path(sys.argv[1]).stem
print("\n\nRunning [%s] with path [%s]\n\n" % (name,sys.argv[1]),file=sys.stderr)
if len(gpus) > 0:
if name == "supercombo":
tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)])
else:
tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=300)])
m = load_model(sys.argv[1])
print(m, file=sys.stderr)
if os.path.splitext(os.path.basename(sys.argv[1]))[0]== "supercombo":
if len(gpus) > 0:
tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2548)])

with open(f"{os.path.splitext(sys.argv[1])}.model.keras", "r") as json_file:
m = model_from_json(json_file.read())
m.load_weights(f"{os.path.splitext(sys.argv[1])}.weights.keras")
else:
if len(gpus) > 0:
tf.config.experimental.set_virtual_device_configuration(gpus[0], [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=256)])
m.load_model(sys.argv[1])
bs = [int(np.product(ii.shape[1:])) for ii in m.inputs]
ri = keras.layers.Input((sum(bs),))

tii = []
acc = 0
for i, ii in enumerate(m.inputs):
print(ii, file=sys.stderr)
ti = keras.layers.Lambda(lambda x: x[:,acc:acc+bs[i]], output_shape=(1, bs[i]))(ri)
acc += bs[i]
tr = keras.layers.Reshape(ii.shape[1:])(ti)
Expand Down
79 changes: 0 additions & 79 deletions selfdrive/modeld/runners/keras_runner_split.py

This file was deleted.

0 comments on commit 78dc78c

Please sign in to comment.