Skip to content
Snippets Groups Projects
Commit 2d53557c authored by Andi Gerken's avatar Andi Gerken
Browse files

Initial commit

parents
Branches
No related tags found
No related merge requests found
%% Cell type:code id: tags:
```
%reload_ext autoreload
%autoreload 2
import fish_models
import numpy as np
import copy
from pathlib import Path
import json
requested_dset = "lfftr_aav_4_2piw_10_2pif_rd2_mf10_oris"
dataset_json = json.load(open("../buffer/datasets.json", "r"))
meta_config = dataset_json[requested_dset]
config = meta_config["dataset_config"]
```
%% Cell type:code id: tags:
```
modified_config = copy.deepcopy(config)
if config["data_path"] == "live_female_female/train":
modified_config["data_path"] = fish_models.live_female_female_data() / "train"
else:
raise Exception("Not supported data")
translate = {
"pi":np.pi,
"2pi":2 * np.pi
}
for k, v in modified_config["raycast"].items():
if type(v) is not list and v in translate:
modified_config["raycast"][k] = translate[v]
if "speed_bins" in modified_config:
sb = modified_config["speed_bins"]
modified_config["speed_bin_borders"] = np.linspace(sb[0], sb[1], sb[2])
modified_config.pop("speed_bins")
if "turn_bins" in modified_config:
sb = modified_config["turn_bins"]
modified_config["turn_bin_borders"] = np.linspace(sb[0], sb[1], sb[2])
modified_config.pop("turn_bins")
raycast = fish_models.gym_interface.Raycast(world_bounds=([-50, -50], [50, 50]),**modified_config["raycast"])
modified_config["raycast"] = raycast
dset = fish_models.datasets.io_dataset.IoDataset(**modified_config)
storage_path = Path("../buffer") / meta_config["path"]
if storage_path.exists():
raise Exception(f"File exists and will be overwritten.")
dset.store(storage_path)
```
%% Output
Loading data from 20 files.
100%|██████████| 20/20 [00:23<00:00, 1.17s/it]
Calculating views from 20 files.
20%|██ | 4/20 [00:11<00:48, 3.01s/it]
%% Cell type:code id: tags:
```
```
# Correct settings for php server
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 655 {} \;
%% Cell type:code id: tags:
```
import datetime
import json
dataset_config= {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 4,
"n_fish_bins": 10,
"fov_angle_fish_bins": "2pi",
"fov_angle_wall_raycasts": "2pi"
},
"output_strings": [
"actions",
"actions_binned",
"views"
],
"speed_bins":(-2,20,21),
"turn_bins":(-10,10,21),
"reduce_dim": 2,
"max_files": 10
}
name = ""
if dataset_config["data_path"] == "live_female_female/train":
name += "lfftr_"
for o in dataset_config["output_strings"]:
# add the first character of the output strings
name += o[0]
ray_config = dataset_config["raycast"]
name += f"_{ray_config['n_wall_raycasts']}_{ray_config['fov_angle_wall_raycasts']}w_{ray_config['n_fish_bins']}_{ray_config['fov_angle_fish_bins']}f_rd{dataset_config['reduce_dim']}"
if dataset_config["max_files"] is not None:
name += f"_mf{dataset_config['max_files']}"
today = datetime.date.today().strftime("%d.%m.%Y")
output_config = {name:{"path":f"datasets/{name + '.pickle'}", "date":today, "dataset_config":dataset_config}}
print(json.dumps(output_config, indent=4))
```
%% Output
{
"lfftr_av_4_2piw_10_2pif_rd2_mf20": {
"path": "datasets/lfftr_av_4_2piw_10_2pif_rd2_mf20.pickle",
"date": "01.09.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 4,
"n_fish_bins": 10,
"fov_angle_fish_bins": "2pi",
"fov_angle_wall_raycasts": "2pi"
},
"output_strings": [
"actions",
"views"
],
"reduce_dim": 2,
"max_files": 20
}
}
}
%% Cell type:code id: tags:
```
```
%% Cell type:code id: tags:
```
%reload_ext autoreload
%autoreload 2
import fish_models
import numpy as np
import copy
from pathlib import Path
import json
requested_dset = "lfftr_aav_4_2piw_10_2pif_rd2_mf10_oris"
dataset_json = json.load(open("../buffer/datasets.json", "r"))
meta_config = dataset_json[requested_dset]
config = meta_config["dataset_config"]
```
%% Cell type:code id: tags:
```
modified_config = copy.deepcopy(config)
if config["data_path"] == "live_female_female/train":
modified_config["data_path"] = fish_models.live_female_female_data() / "train"
else:
raise Exception("Not supported data")
translate = {
"pi":np.pi,
"2pi":2 * np.pi
}
for k, v in modified_config["raycast"].items():
if type(v) is not list and v in translate:
modified_config["raycast"][k] = translate[v]
if "speed_bins" in modified_config:
sb = modified_config["speed_bins"]
modified_config["speed_bin_borders"] = np.linspace(sb[0], sb[1], sb[2])
modified_config.pop("speed_bins")
if "turn_bins" in modified_config:
sb = modified_config["turn_bins"]
modified_config["turn_bin_borders"] = np.linspace(sb[0], sb[1], sb[2])
modified_config.pop("turn_bins")
raycast = fish_models.gym_interface.Raycast(world_bounds=([-50, -50], [50, 50]),**modified_config["raycast"])
modified_config["raycast"] = raycast
dset = fish_models.datasets.io_dataset.IoDataset(**modified_config)
storage_path = Path("../buffer") / meta_config["path"]
if storage_path.exists():
raise Exception(f"File exists and will be overwritten.")
dset.store(storage_path)
```
%% Output
Loading data from 20 files.
100%|██████████| 20/20 [00:23<00:00, 1.17s/it]
Calculating views from 20 files.
100%|██████████| 20/20 [01:00<00:00, 3.02s/it]
Reducing shape of actions.
100%|██████████| 359560/359560 [00:02<00:00, 147861.50it/s]
Reducing shape of actions_binned.
100%|██████████| 359560/359560 [00:02<00:00, 156212.84it/s]
Reducing shape of views.
100%|██████████| 359560/359560 [00:02<00:00, 153981.95it/s]
Status of IoDataset:
The first 3 dimensions are reduced from (20, 2, 8989) to (359560)
actions (359560, 2): consisting of speed [cm/s] and turn [rad/s].
actions_binned (359560, 2): consisting of speed [discretized into 20 bins] and turn [discretized into 20 bins]
views (359560, 24): consisting of 10 fish bins, 4 wall raycasts and 10 fish oris.
%% Cell type:code id: tags:
```
```
This diff is collapsed.
This diff is collapsed.
inotifywait -m ~/blubber_workspace/model_server/public_html/ -e create -e moved_to -e modify -e attrib -e close_write -e delete |
while read dir action file; do
if [[ ! "$file" =~ ".+\.swp" ]]; then
echo "$action happened to $file, copying everything"
rsync -a --delete /home/andi/blubber_workspace/model_server/public_html/ login_zedat:public_html/model_server/
fi
done
{
"lfftr_av_6w_6f_rd2_mf5": {
"path": "datasets/lfftr_av_6w_6f_rd2_mf5.pickle",
"date": "31.08.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 6,
"n_fish_bins": 6,
"fov_angle_fish_bins": "pi",
"fov_angle_wall_raycasts": "pi"
},
"output_strings": [
"actions",
"views"
],
"reduce_dim": 2,
"max_files": 5
}
},
"lfftr_pav_10w_10f_rd2": {
"path": "datasets/lfftr_pav_10w_10f_rd2.pickle",
"date": "31.08.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 10,
"n_fish_bins": 10,
"fov_angle_fish_bins": "pi",
"fov_angle_wall_raycasts": "pi"
},
"output_strings": [
"poses",
"actions",
"views"
],
"reduce_dim": 2,
"max_files": null
}
},
"lfftr_av_4_2piw_10_2pif_rd2_mf20": {
"path": "datasets/lfftr_av_4_2piw_10_2pif_rd2_mf20.pickle",
"date": "01.09.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 4,
"n_fish_bins": 10,
"fov_angle_fish_bins": "2pi",
"fov_angle_wall_raycasts": "2pi"
},
"output_strings": [
"actions",
"views"
],
"reduce_dim": 2,
"max_files": 20
}
},
"lfftr_aav_4_2piw_10_2pif_rd2_mf10": {
"path": "datasets/lfftr_aav_4_2piw_10_2pif_rd2_mf10.pickle",
"date": "05.10.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 4,
"n_fish_bins": 10,
"fov_angle_fish_bins": "2pi",
"fov_angle_wall_raycasts": "2pi"
},
"output_strings": [
"actions",
"actions_binned",
"views"
],
"speed_bins": [
-2,
20,
21
],
"turn_bins": [
-10,
10,
21
],
"reduce_dim": 2,
"max_files": 20
}
},
"lfftr_aav_4_2piw_10_2pif_rd2_mf10_oris": {
"path": "datasets/lfftr_aav_4_2piw_10_2pif_rd2_mf10.pickle",
"date": "05.10.2021",
"dataset_config": {
"data_path": "live_female_female/train",
"raycast": {
"n_wall_raycasts": 4,
"n_fish_bins": 10,
"fov_angle_fish_bins": "2pi",
"fov_angle_wall_raycasts": "2pi",
"view_of": [
"fish",
"walls",
"fish_oris"
]
},
"output_strings": [
"actions",
"actions_binned",
"views"
],
"speed_bins": [
-2,
20,
21
],
"turn_bins": [
-10,
10,
21
],
"reduce_dim": 2,
"max_files": 20
}
}
}
\ No newline at end of file
{
"ReplayModel_v0": {
"path": "models/ReplayModel_v0.zip",
"date": "31.08.2021",
"model_class": "fish_models.models.released.replay_model.ReplayModel",
"model_args": {},
"train_args": {},
"dataset": "lfftr_av_6w_6f_rd2_mf5"
},
"KNNModel_v0": {
"path": "models/KNNModel_v0.zip",
"date": "31.08.2021",
"model_class": "fish_models.models.released.knn_model.KNNModel",
"model_args": {
"k": 3
},
"train_args": {},
"dataset": "lfftr_av_6w_6f_rd2_mf5"
},
"ClusterModel_v0": {
"path": "models/ClusterModel_v0.zip",
"date": "01.09.2021",
"model_class": "fish_models.models.released.cluster_model.ClusterModel",
"model_args": {
"cluster_method": "KMeans",
"cluster_args": {
"n_init": 100,
"n_clusters": 200
}
},
"train_args": {},
"dataset": "lfftr_av_4_2piw_10_2pif_rd2_mf20"
},
"ClusterModel_v1": {
"path": "models/ClusterModel_v1.zip",
"date": "01.09.2021",
"model_class": "fish_models.models.released.cluster_model.ClusterModel",
"model_args": {
"cluster_method": "KMeans",
"cluster_args": {
"n_init": 100,
"n_clusters": 200
}
},
"description": "This model was trained with fish, wall and fish_oris inputs.",
"train_args": {},
"dataset": "lfftr_aav_4_2piw_10_2pif_rd2_mf10"
},
"ClassificationModel_v0": {
"path": "models/ClassificationModel_v0.zip",
"date": "05.10.2021",
"model_class": "fish_models.models.andi.classification_model.ClassificationModel",
"model_args": {
"classifier_method": "MLP",
"classifier_args": {
"verbose": true,
"max_iter": 30,
"hidden_layer_sizes": [
128
]
}
},
"train_args": {},
"dataset": "lfftr_aav_4_2piw_10_2pif_rd2_mf10"
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment