Browse Source

have CUDA device-side error

master
Mahdi Abdollah Pour 2 years ago
parent
commit
0b60bffeea

+ 1
- 1
.idea/ByteTrack.iml View File

<module type="PYTHON_MODULE" version="4"> <module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Remote Python 3.6.8 (sftp://[email protected]:22/home/abdollahpoor/abd_venv2/bin/python)" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="Remote Python 3.6.13 (sftp://[email protected]:22/home/abdollahpour.ce.sharif/.conda/envs/abd_env/bin/python)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="TestRunnerService"> <component name="TestRunnerService">

+ 8
- 1
.idea/deployment.xml View File

<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="PublishConfigData" autoUpload="Always" serverName="abdollahpo[email protected]:22">
<component name="PublishConfigData" autoUpload="Always" serverName="abdollahpo[email protected]:22">
<serverData> <serverData>
<paths name="[email protected]:22"> <paths name="[email protected]:22">
<serverdata> <serverdata>
</mappings> </mappings>
</serverdata> </serverdata>
</paths> </paths>
<paths name="[email protected]:22">
<serverdata>
<mappings>
<mapping deploy="/home/abdollahpour.ce.sharif/ByteTrack" local="$PROJECT_DIR$" />
</mappings>
</serverdata>
</paths>
</serverData> </serverData>
<option name="myAutoUpload" value="ALWAYS" /> <option name="myAutoUpload" value="ALWAYS" />
</component> </component>

+ 19
- 1
.idea/inspectionProfiles/Project_Default.xml View File

<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true"> <inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages"> <option name="ignoredPackages">
<value> <value>
<list size="2">
<list size="20">
<item index="0" class="java.lang.String" itemvalue="filterpy" /> <item index="0" class="java.lang.String" itemvalue="filterpy" />
<item index="1" class="java.lang.String" itemvalue="h5py" /> <item index="1" class="java.lang.String" itemvalue="h5py" />
<item index="2" class="java.lang.String" itemvalue="scikit-image" />
<item index="3" class="java.lang.String" itemvalue="thop" />
<item index="4" class="java.lang.String" itemvalue="motmetrics" />
<item index="5" class="java.lang.String" itemvalue="tabulate" />
<item index="6" class="java.lang.String" itemvalue="torch" />
<item index="7" class="java.lang.String" itemvalue="numpy" />
<item index="8" class="java.lang.String" itemvalue="onnx-simplifier" />
<item index="9" class="java.lang.String" itemvalue="loguru" />
<item index="10" class="java.lang.String" itemvalue="torchvision" />
<item index="11" class="java.lang.String" itemvalue="tqdm" />
<item index="12" class="java.lang.String" itemvalue="onnxruntime" />
<item index="13" class="java.lang.String" itemvalue="tensorboard" />
<item index="14" class="java.lang.String" itemvalue="ninja" />
<item index="15" class="java.lang.String" itemvalue="lap" />
<item index="16" class="java.lang.String" itemvalue="learn2learn" />
<item index="17" class="java.lang.String" itemvalue="onnx" />
<item index="18" class="java.lang.String" itemvalue="opencv_python" />
<item index="19" class="java.lang.String" itemvalue="Pillow" />
</list> </list>
</value> </value>
</option> </option>

+ 1
- 1
.idea/misc.xml View File

<component name="JavaScriptSettings"> <component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" /> <option name="languageLevel" value="ES6" />
</component> </component>
<component name="ProjectRootManager" version="2" project-jdk-name="Remote Python 3.6.8 (sftp://[email protected]:22/home/abdollahpoor/abd_venv2/bin/python)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Remote Python 3.6.13 (sftp://[email protected]:22/home/abdollahpour.ce.sharif/.conda/envs/abd_env/bin/python)" project-jdk-type="Python SDK" />
</project> </project>

+ 368
- 246
.idea/workspace.xml View File

<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="1c3314de-6806-4cdb-bbdc-085922009a88" name="Default Changelist" comment=""> <list default="true" id="1c3314de-6806-4cdb-bbdc-085922009a88" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/experiments/meta_gpu.sh" afterDir="false" />
<change afterPath="$PROJECT_DIR$/experiments/meta_gpu_resume.sh" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/ByteTrack.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/ByteTrack.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/deployment.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/deployment.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py" beforeDir="false" afterPath="$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/requirements.txt" beforeDir="false" afterPath="$PROJECT_DIR$/requirements.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/yolox/core/meta_trainer.py" beforeDir="false" afterPath="$PROJECT_DIR$/yolox/core/meta_trainer.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/yolox/data/dataloading.py" beforeDir="false" afterPath="$PROJECT_DIR$/yolox/data/dataloading.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/yolox/exp/base_meta_exp.py" beforeDir="false" afterPath="$PROJECT_DIR$/yolox/exp/base_meta_exp.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/yolox/models/yolo_head.py" beforeDir="false" afterPath="$PROJECT_DIR$/yolox/models/yolo_head.py" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<session id="1182338384"> <session id="1182338384">
<usages-collector id="statistics.lifecycle.project"> <usages-collector id="statistics.lifecycle.project">
<counts> <counts>
<entry key="project.closed" value="7" />
<entry key="project.open.time.0" value="3" />
<entry key="project.open.time.1" value="2" />
<entry key="project.open.time.10" value="1" />
<entry key="project.open.time.9" value="2" />
<entry key="project.opened" value="8" />
<entry key="project.closed" value="19" />
<entry key="project.open.time.0" value="4" />
<entry key="project.open.time.1" value="4" />
<entry key="project.open.time.10" value="2" />
<entry key="project.open.time.13" value="1" />
<entry key="project.open.time.14" value="1" />
<entry key="project.open.time.16" value="1" />
<entry key="project.open.time.17" value="1" />
<entry key="project.open.time.20" value="1" />
<entry key="project.open.time.9" value="4" />
<entry key="project.opened" value="19" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.extensions.open"> <usages-collector id="statistics.file.extensions.open">
<counts> <counts>
<entry key="gitignore" value="1" />
<entry key="py" value="143" />
<entry key="sh" value="4" />
<entry key="gitignore" value="2" />
<entry key="py" value="173" />
<entry key="sh" value="7" />
<entry key="train" value="30" /> <entry key="train" value="30" />
<entry key="txt" value="1" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.types.open"> <usages-collector id="statistics.file.types.open">
<counts> <counts>
<entry key="PLAIN_TEXT" value="35" />
<entry key="Python" value="143" />
<entry key="PLAIN_TEXT" value="40" />
<entry key="Python" value="173" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.extensions.edit"> <usages-collector id="statistics.file.extensions.edit">
<counts> <counts>
<entry key="dummy" value="23" /> <entry key="dummy" value="23" />
<entry key="gitignore" value="2" />
<entry key="py" value="1984" />
<entry key="sh" value="65" />
<entry key="gitignore" value="11" />
<entry key="py" value="2773" />
<entry key="sh" value="212" />
<entry key="train" value="26" /> <entry key="train" value="26" />
<entry key="txt" value="26" />
</counts> </counts>
</usages-collector> </usages-collector>
<usages-collector id="statistics.file.types.edit"> <usages-collector id="statistics.file.types.edit">
<counts> <counts>
<entry key="PLAIN_TEXT" value="116" />
<entry key="Python" value="1984" />
<entry key="PLAIN_TEXT" value="298" />
<entry key="Python" value="2773" />
</counts> </counts>
</usages-collector> </usages-collector>
</session> </session>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/tools/train.py"> <entry file="file://$PROJECT_DIR$/tools/train.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="37" column="104" selection-start-line="37" selection-start-column="104" selection-end-line="37" selection-end-column="104" />
<state relative-caret-position="1159">
<caret line="71" column="13" selection-start-line="71" selection-start-column="13" selection-end-line="71" selection-end-column="13" />
<folding> <folding>
<element signature="e#0#25#0" expanded="true" /> <element signature="e#0#25#0" expanded="true" />
</folding> </folding>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/experiments/meta_gpu_resume.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="76">
<caret line="4" column="10" selection-start-line="4" selection-start-column="10" selection-end-line="4" selection-end-column="10" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/yolox/core/meta_trainer.py"> <entry file="file://$PROJECT_DIR$/yolox/core/meta_trainer.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="47">
<caret line="84" column="21" selection-start-line="84" selection-start-column="12" selection-end-line="84" selection-end-column="21" />
<state relative-caret-position="163">
<caret line="217" column="28" lean-forward="true" selection-start-line="217" selection-start-column="28" selection-end-line="217" selection-end-column="28" />
<folding> <folding>
<element signature="e#65#90#0" expanded="true" /> <element signature="e#65#90#0" expanded="true" />
<marker date="1638341974573" expanded="true" signature="2896:3166" ph="..." />
<marker date="1639860079999" expanded="true" signature="3013:3309" ph="..." />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/.gitignore">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/tools/mix_data_ablation.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="142" lean-forward="true" selection-start-line="142" selection-end-line="142" />
<state relative-caret-position="349">
<caret line="77" column="47" selection-start-line="77" selection-start-column="40" selection-end-line="77" selection-end-column="47" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/experiments/train_mot17_on_mot20.sh">
<entry file="file://$PROJECT_DIR$/yolox/core/trainer.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state>
<caret column="152" selection-end-column="152" />
<state relative-caret-position="19">
<caret line="123" column="8" selection-start-line="123" selection-start-column="8" selection-end-line="123" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/yolox/models/yolo_head.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1729">
<caret line="100" column="24" selection-start-line="100" selection-start-column="12" selection-end-line="100" selection-end-column="24" />
<state relative-caret-position="226">
<caret line="400" column="39" selection-start-line="400" selection-start-column="39" selection-end-line="400" selection-end-column="39" />
<folding> <folding>
<element signature="e#18#27#0" expanded="true" />
<element signature="e#1260#3843#0" />
<element signature="e#4756#7329#0" />
<element signature="e#7400#8171#0" />
<element signature="e#8227#8853#0" />
<element signature="e#10722#11519#0" />
<element signature="e#15367#15615#0" />
<element signature="e#19041#22616#0" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/yolox/exp/meta_yolox_base.py">
<entry file="file://$PROJECT_DIR$/yolox/models/losses.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2641">
<caret line="147" column="39" selection-start-line="147" selection-start-column="28" selection-end-line="147" selection-end-column="39" />
<folding>
<element signature="e#65#77#0" expanded="true" />
</folding>
<state relative-caret-position="-1038">
<caret line="10" column="8" selection-start-line="10" selection-start-column="8" selection-end-line="10" selection-end-column="8" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="273">
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
</state> </state>
</provider> </provider>
</entry> </entry>
</component> </component>
<component name="FindInProjectRecents"> <component name="FindInProjectRecents">
<findStrings> <findStrings>
<find>num_class</find>
<find>track</find>
<find>DATA_ROOT</find>
<find>val_half</find>
<find>batch_size</find>
<find>use_model_ema</find>
<find>ema_model</find>
<find>ema</find>
<find>learn</find>
<find>clone</find>
<find>-b</find>
<find>-t</find>
<find>-c</find>
<find>max_iter</find>
<find>device</find>
<find>model</find>
<find>resume_train</find>
<find>self.mode</find>
<find>self.model =</find>
<find>res</find>
<find>optimizer</find> <find>optimizer</find>
<find>get_eval_loader</find>
<find>name</find>
<find>self.model</find>
<find>-d</find>
<find>self.name</find>
<find>lr</find>
<find>save</find>
<find>train_loader,</find>
<find>DataPrefetcher</find>
<find>OOM</find>
<find>best_ap</find>
<find>evaluate_and_save_model</find>
<find>best</find>
<find>after_train</find>
<find>before_iter</find>
<find>train_one_iter</find>
<find>self.train_loaders</find>
<find>self.train_loader</find>
<find>before_train</find>
<find>self.data</find>
<find>train_loaders</find>
<find>train_loader</find> <find>train_loader</find>
<find>self.iter</find>
<find>self.prefetcher</find>
<find>prefe</find>
<find>before_tra</find>
<find>prefetcher</find>
<find>progress</find>
<find>epoch_progress</find>
<find>before_task</find>
<find>get_assignments</find>
<find>adapt</find>
<find>size</find>
<find>gpu_mem_usage</find>
<find>get_losses</find>
<find>before</find>
<find>id</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>Citypersons</replace> <replace>Citypersons</replace>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
<option value="$PROJECT_DIR$/tools/convert_mot20_to_coco.py" />
<option value="$PROJECT_DIR$/datasets/data_path/citypersons.train" />
<option value="$PROJECT_DIR$/tools/convert_cityperson_to_coco.py" />
<option value="$PROJECT_DIR$/yolox/data/dataloading.py" />
<option value="$PROJECT_DIR$/exps/example/mot/yolox_x_mot20.py" />
<option value="$PROJECT_DIR$/yolox/evaluators/__init__.py" />
<option value="$PROJECT_DIR$/tools/track.py" /> <option value="$PROJECT_DIR$/tools/track.py" />
<option value="$PROJECT_DIR$/experiments/track_mot20.sh" /> <option value="$PROJECT_DIR$/experiments/track_mot20.sh" />
<option value="$PROJECT_DIR$/yolox/models/yolo_head.py" />
<option value="$PROJECT_DIR$/yolox/models/yolox.py" /> <option value="$PROJECT_DIR$/yolox/models/yolox.py" />
<option value="$PROJECT_DIR$/yolox/evaluators/mot_evaluator.py" /> <option value="$PROJECT_DIR$/yolox/evaluators/mot_evaluator.py" />
<option value="$PROJECT_DIR$/tools/convert_mot20_to_coco_metaway.py" /> <option value="$PROJECT_DIR$/tools/convert_mot20_to_coco_metaway.py" />
<option value="$PROJECT_DIR$/yolox/exp/__init__.py" /> <option value="$PROJECT_DIR$/yolox/exp/__init__.py" />
<option value="$PROJECT_DIR$/yolox/core/trainer.py" /> <option value="$PROJECT_DIR$/yolox/core/trainer.py" />
<option value="$PROJECT_DIR$/yolox/core/__init__.py" /> <option value="$PROJECT_DIR$/yolox/core/__init__.py" />
<option value="$PROJECT_DIR$/experiments/train_mot17_on_mot20.sh" />
<option value="$PROJECT_DIR$/yolox/utils/checkpoint.py" /> <option value="$PROJECT_DIR$/yolox/utils/checkpoint.py" />
<option value="$PROJECT_DIR$/yolox/exp/meta_yolox_base.py" />
<option value="$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py" />
<option value="$PROJECT_DIR$/yolox/data/datasets/mot.py" /> <option value="$PROJECT_DIR$/yolox/data/datasets/mot.py" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/yolox/exp/meta_yolox_base.py" />
<option value="$PROJECT_DIR$/requirements.txt" />
<option value="$PROJECT_DIR$/experiments/train_mot17_on_mot20.sh" />
<option value="$PROJECT_DIR$/yolox/exp/base_meta_exp.py" />
<option value="$PROJECT_DIR$/tools/train.py" /> <option value="$PROJECT_DIR$/tools/train.py" />
<option value="$PROJECT_DIR$/yolox/statics.py" />
<option value="$PROJECT_DIR$/yolox/data/dataloading.py" />
<option value="$PROJECT_DIR$/experiments/meta_gpu.sh" />
<option value="$PROJECT_DIR$/experiments/meta_gpu_resume.sh" />
<option value="$PROJECT_DIR$/yolox/core/meta_trainer.py" /> <option value="$PROJECT_DIR$/yolox/core/meta_trainer.py" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py" />
<option value="$PROJECT_DIR$/yolox/models/yolo_head.py" />
</list> </list>
</option> </option>
</component> </component>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" /> <item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" /> <item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="experiments" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="exps" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="exps" type="462c0819:PsiDirectoryNode" />
<item name="example" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="exps" type="462c0819:PsiDirectoryNode" />
<item name="example" type="462c0819:PsiDirectoryNode" />
<item name="metamot" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="tools" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="yolox" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="yolox" type="462c0819:PsiDirectoryNode" />
<item name="core" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ByteTrack" type="b2602c69:ProjectViewProjectNode" />
<item name="ByteTrack" type="462c0819:PsiDirectoryNode" />
<item name="YOLOX_outputs" type="462c0819:PsiDirectoryNode" />
</path>
</expand> </expand>
<select /> <select />
</subPane> </subPane>
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path\citypersons" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path\eth" />
</key>
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\experiments" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\exps\example\metamot" /> <recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\exps\example\metamot" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\tools" /> <recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\tools" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path" /> <recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\exps\example\mot" /> <recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\exps\example\mot" />
</key> </key>
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path\citypersons" />
<recent name="C:\Users\ASUS\PycharmProjects\ByteTrack\datasets\data_path\eth" />
</key>
</component> </component>
<component name="RunDashboard"> <component name="RunDashboard">
<option name="ruleStates"> <option name="ruleStates">
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1637766872008</updated> <updated>1637766872008</updated>
</task> </task>
<task id="LOCAL-00001" summary="moving to HPC">
<created>1639402612450</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1639402612450</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers /> <servers />
</component> </component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-7" y="-7" width="1294" height="694" extended-state="6" /> <frame x="-7" y="-7" width="1294" height="694" extended-state="6" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.27876824" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2706645" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32976827" />
<window_info anchor="bottom" id="Run" order="2" /> <window_info anchor="bottom" id="Run" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="TODO" order="6" weight="0.32976827" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" /> <window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="File Transfer" order="9" weight="0.24777183" />
<window_info anchor="bottom" id="File Transfer" order="9" visible="true" weight="0.19073084" />
<window_info anchor="bottom" id="Database Changes" order="10" show_stripe_button="false" /> <window_info anchor="bottom" id="Database Changes" order="10" show_stripe_button="false" />
<window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.49918962" visible="true" weight="0.32976827" />
<window_info anchor="bottom" id="Terminal" order="11" sideWeight="0.49918962" weight="0.32976827" />
<window_info anchor="bottom" id="Event Log" order="12" sideWeight="0.5008104" side_tool="true" weight="0.32976827" /> <window_info anchor="bottom" id="Event Log" order="12" sideWeight="0.5008104" side_tool="true" weight="0.32976827" />
<window_info anchor="bottom" id="Python Console" order="13" /> <window_info anchor="bottom" id="Python Console" order="13" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<component name="VcsContentAnnotationSettings"> <component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" /> <option name="myLimit" value="2678400000" />
</component> </component>
<component name="VcsManagerConfiguration">
<MESSAGE value="moving to HPC" />
<option name="LAST_COMMIT_MESSAGE" value="moving to HPC" />
</component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/tubingen.train">
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_ch.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="112" selection-start-line="112" selection-end-line="112" />
<state relative-caret-position="-1387">
<caret line="48" column="34" selection-start-line="48" selection-start-column="34" selection-end-line="48" selection-end-column="34" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/hamburg.train">
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mot20.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="243" selection-start-line="243" selection-end-line="243" />
<state relative-caret-position="360">
<caret line="42" column="21" selection-start-line="42" selection-start-column="21" selection-end-line="42" selection-end-column="21" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/bochum.train">
<entry file="file://$PROJECT_DIR$/yolox/data/samplers.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="58" selection-start-line="58" selection-end-line="58" />
<state relative-caret-position="-39">
<caret line="20" column="8" selection-start-line="20" selection-start-column="8" selection-end-line="20" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/bremen.train">
<entry file="file://$PROJECT_DIR$/tools/convert_crowdhuman_to_coco.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="251" selection-start-line="251" selection-end-line="251" />
<state relative-caret-position="190">
<caret line="28" column="21" lean-forward="true" selection-start-line="28" selection-start-column="21" selection-end-line="28" selection-end-column="21" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/zurich.train">
<entry file="file://$PROJECT_DIR$/tools/convert_cityperson_to_coco_metaway.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="107" selection-start-line="107" selection-end-line="107" />
<state relative-caret-position="95">
<caret line="8" selection-start-line="8" selection-end-line="8" selection-end-column="60" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/darmstadt.train">
<entry file="file://$PROJECT_DIR$/yolox/models/yolox.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="72" selection-start-line="72" selection-end-line="72" />
</state>
<state relative-caret-position="-456" />
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/dusseldorf.train">
<entry file="file://$PROJECT_DIR$/tools/convert_mot17_to_coco.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="151" selection-start-line="151" selection-end-line="151" />
<state relative-caret-position="247">
<caret line="37" column="70" selection-start-line="37" selection-start-column="65" selection-end-line="37" selection-end-column="70" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/ulm.train">
<entry file="file://$PROJECT_DIR$/yolox/exp/__init__.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="70" selection-start-line="70" selection-end-line="70" />
<state relative-caret-position="133">
<caret line="7" column="36" selection-start-line="7" selection-start-column="36" selection-end-line="7" selection-end-column="36" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/stuttgart.train">
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_ablation.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/yolox/utils/lr_scheduler.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="498">
<caret line="165" selection-start-line="165" selection-end-line="165" />
<state relative-caret-position="-115">
<caret line="8" column="17" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="17" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/datasets/data_path/citypersons/jena.train">
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mix_det.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mot17_half.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1919">
<caret line="101" selection-start-line="101" selection-end-line="101" />
<state relative-caret-position="114">
<caret line="87" column="75" selection-start-line="87" selection-start-column="75" selection-end-line="87" selection-end-column="75" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_mot20_to_coco_metaway.py">
<entry file="file://$PROJECT_DIR$/experiments/track_mot20.sh">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mix_mot20_ch.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="370">
<caret line="40" column="12" selection-start-line="40" selection-start-column="12" selection-end-line="40" selection-end-column="41" />
<state relative-caret-position="145">
<caret line="118" column="20" selection-start-line="118" selection-start-column="20" selection-end-line="118" selection-end-column="20" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_mot17_to_coco_metaway.py">
<entry file="file://$PROJECT_DIR$/yolox/core/__init__.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="271">
<caret line="24" column="56" lean-forward="true" selection-start-line="24" selection-start-column="56" selection-end-line="24" selection-end-column="56" />
<state relative-caret-position="114">
<caret line="6" column="37" selection-start-line="6" selection-start-column="37" selection-end-line="6" selection-end-column="37" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_cityperson_to_coco.py">
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_m_mix_det.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="5" column="72" selection-start-line="5" selection-start-column="72" selection-end-line="5" selection-end-column="72" />
</state>
<state relative-caret-position="-2223" />
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/mix_data_test_mot20.py">
<provider selected="true" editor-type-id="text-editor" />
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_s_mix_det.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
</state>
</provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/mix_data_test_mot17.py">
<entry file="file://$PROJECT_DIR$/yolox/exp/yolox_base.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-532">
<caret line="102" column="35" selection-start-line="102" selection-start-column="28" selection-end-line="102" selection-end-column="35" />
<state>
<caret line="152" lean-forward="true" selection-start-line="152" selection-end-line="152" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/tracker/byte_tracker.py">
<entry file="file://$PROJECT_DIR$/yolox/evaluators/coco_evaluator.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="144" column="17" selection-start-line="144" selection-start-column="6" selection-end-line="144" selection-end-column="17" />
<state relative-caret-position="133">
<caret line="32" column="8" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/evaluators/mot_evaluator.py">
<entry file="file://$PROJECT_DIR$/yolox/utils/checkpoint.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171"> <state relative-caret-position="171">
<caret line="348" column="25" selection-start-line="348" selection-start-column="25" selection-end-line="348" selection-end-column="25" />
<caret line="23" column="14" selection-start-line="23" selection-start-column="8" selection-end-line="23" selection-end-column="14" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/track.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/-1274499096/-2096203856/torch/cuda/__init__.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="161" column="21" lean-forward="true" selection-start-line="161" selection-start-column="21" selection-end-line="161" selection-end-column="21" />
<state relative-caret-position="208">
<caret line="261" column="23" lean-forward="true" selection-start-line="261" selection-start-column="23" selection-end-line="261" selection-end-column="23" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_ethz_to_coco_metaway.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_ch.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/-1274499096/-2096203856/torch/cuda/_utils.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1387">
<caret line="48" column="34" selection-start-line="48" selection-start-column="34" selection-end-line="48" selection-end-column="34" />
<state relative-caret-position="-399">
<caret line="6" column="4" selection-start-line="6" selection-start-column="4" selection-end-line="6" selection-end-column="4" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mot20.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/-1274499096/-2096203856/thop/profile.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="360">
<caret line="42" column="21" selection-start-line="42" selection-start-column="21" selection-end-line="42" selection-end-column="21" />
<state relative-caret-position="-951">
<caret line="149" column="4" selection-start-line="149" selection-start-column="4" selection-end-line="149" selection-end-column="4" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/data/samplers.py">
<entry file="file://$PROJECT_DIR$/yolox/utils/model_utils.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-39">
<caret line="20" column="8" selection-start-line="20" selection-start-column="8" selection-end-line="20" selection-end-column="8" />
<state relative-caret-position="219">
<caret line="23" column="10" selection-start-line="23" selection-start-column="4" selection-end-line="23" selection-end-column="10" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_crowdhuman_to_coco.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/-1274499096/201545291/argparse.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="190">
<caret line="28" column="21" lean-forward="true" selection-start-line="28" selection-start-column="21" selection-end-line="28" selection-end-column="21" />
<state relative-caret-position="-894">
<caret line="110" selection-start-line="110" selection-end-line="110" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_cityperson_to_coco_metaway.py">
<entry file="file://$PROJECT_DIR$/requirements.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="8" selection-start-line="8" selection-end-line="8" selection-end-column="60" />
<state relative-caret-position="180">
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/models/losses.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/406961684/140107566/abc.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1221" />
<state relative-caret-position="-2308">
<caret line="108" column="6" selection-start-line="108" selection-start-column="6" selection-end-line="108" selection-end-column="6" />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/models/yolox.py">
<entry file="file://$PROJECT_DIR$/yolox/exp/build.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-456" />
<state relative-caret-position="274">
<caret line="50" column="29" lean-forward="true" selection-start-line="50" selection-start-column="29" selection-end-line="50" selection-end-column="29" />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/convert_mot17_to_coco.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/406961684/140107566/argparse.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="37" column="70" selection-start-line="37" selection-start-column="65" selection-end-line="37" selection-end-column="70" />
<state relative-caret-position="-199">
<caret line="101" selection-start-line="101" selection-end-line="101" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/mix_data_ablation.py">
<entry file="file://$PROJECT_DIR$/setup.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-342">
<caret line="30" selection-start-line="30" selection-end-line="30" selection-end-column="14" />
<state relative-caret-position="361">
<caret line="24" column="41" selection-start-line="24" selection-start-column="4" selection-end-line="24" selection-end-column="41" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/exp/__init__.py">
<entry file="file://$PROJECT_DIR$/experiments/train_mot17_on_mot20.sh">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="7" column="36" selection-start-line="7" selection-start-column="36" selection-end-line="7" selection-end-column="36" />
<state>
<caret column="69" selection-end-column="152" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_ablation.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/yolox/utils/lr_scheduler.py">
<entry file="file://$PROJECT_DIR$/yolox/exp/meta_yolox_base.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-115">
<caret line="8" column="17" selection-start-line="8" selection-start-column="6" selection-end-line="8" selection-end-column="17" />
<state relative-caret-position="-1482">
<caret line="14" column="19" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="19" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mix_det.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/yolox/exp/base_meta_exp.py"> <entry file="file://$PROJECT_DIR$/yolox/exp/base_meta_exp.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-518">
<caret line="19" column="6" selection-start-line="19" selection-start-column="6" selection-end-line="19" selection-end-column="6" />
<state relative-caret-position="282">
<caret line="25" column="30" selection-start-line="25" selection-start-column="30" selection-end-line="25" selection-end-column="30" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mot17_half.py">
<entry file="file://$PROJECT_DIR$/tools/track.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="87" column="75" selection-start-line="87" selection-start-column="75" selection-end-line="87" selection-end-column="75" />
<state relative-caret-position="3591">
<caret line="208" column="34" selection-start-line="208" selection-start-column="34" selection-end-line="208" selection-end-column="34" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/experiments/track_mot20.sh">
<provider selected="true" editor-type-id="text-editor" />
<entry file="file://$PROJECT_DIR$/yolox/evaluators/mot_evaluator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2888">
<caret line="177" column="31" selection-start-line="177" selection-start-column="26" selection-end-line="177" selection-end-column="31" />
</state>
</provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_x_mix_mot20_ch.py">
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="145">
<caret line="118" column="20" selection-start-line="118" selection-start-column="20" selection-end-line="118" selection-end-column="20" />
<state relative-caret-position="2679">
<caret line="141" column="7" selection-start-line="141" selection-start-column="7" selection-end-line="141" selection-end-column="7" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/core/__init__.py">
<entry file="file://$PROJECT_DIR$/yolox/data/datasets/mot.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="6" column="37" selection-start-line="6" selection-start-column="37" selection-end-line="6" selection-end-column="37" />
<state relative-caret-position="1197">
<caret line="70" column="19" selection-start-line="70" selection-start-column="19" selection-end-line="70" selection-end-column="19" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_m_mix_det.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/406961684/426308498/torch/optim/optimizer.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2223" />
<state relative-caret-position="-427">
<caret line="126" column="8" selection-start-line="126" selection-start-column="8" selection-end-line="126" selection-end-column="8" />
</state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/mot/yolox_s_mix_det.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/406961684/426308498/torch/nn/modules/module.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
<state relative-caret-position="24101">
<caret line="1424" column="8" selection-start-line="1424" selection-start-column="8" selection-end-line="1424" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/exp/yolox_base.py">
<entry file="file://$USER_HOME$/.PyCharm2018.2/system/remote_sources/406961684/-476729787/yolox/exp/meta_yolox_base.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state>
<caret line="152" lean-forward="true" selection-start-line="152" selection-end-line="152" />
<state relative-caret-position="504">
<caret line="192" column="38" selection-start-line="192" selection-start-column="29" selection-end-line="192" selection-end-column="38" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/evaluators/coco_evaluator.py">
<entry file="file://$PROJECT_DIR$/tools/train.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="133">
<caret line="32" column="8" selection-start-line="32" selection-start-column="8" selection-end-line="32" selection-end-column="8" />
<state relative-caret-position="1159">
<caret line="71" column="13" selection-start-line="71" selection-start-column="13" selection-end-line="71" selection-end-column="13" />
<folding>
<element signature="e#0#25#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/data/dataloading.py"> <entry file="file://$PROJECT_DIR$/yolox/data/dataloading.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
<state relative-caret-position="323">
<caret line="24" column="66" selection-start-line="24" selection-start-column="66" selection-end-line="24" selection-end-column="66" />
<folding>
<element signature="e#96#108#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/utils/checkpoint.py">
<entry file="file://$PROJECT_DIR$/yolox/statics.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="23" column="14" selection-start-line="23" selection-start-column="8" selection-end-line="23" selection-end-column="14" />
<state relative-caret-position="76">
<caret line="4" column="56" selection-start-line="4" selection-start-column="56" selection-end-line="4" selection-end-column="56" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/core/trainer.py">
<entry file="file://$PROJECT_DIR$/experiments/meta_gpu.sh">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="166" column="18" selection-start-line="166" selection-start-column="8" selection-end-line="166" selection-end-column="18" />
<state relative-caret-position="228">
<caret line="12" selection-start-line="12" selection-end-line="12" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py">
<entry file="file://$PROJECT_DIR$/experiments/meta_gpu_resume.sh">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1729">
<caret line="100" column="24" selection-start-line="100" selection-start-column="12" selection-end-line="100" selection-end-column="24" />
<folding>
<element signature="e#18#27#0" expanded="true" />
</folding>
<state relative-caret-position="76">
<caret line="4" column="10" selection-start-line="4" selection-start-column="10" selection-end-line="4" selection-end-column="10" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/exp/meta_yolox_base.py">
<entry file="file://$PROJECT_DIR$/exps/example/metamot/yolox_x_mot17_on_mot20.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2641">
<caret line="147" column="39" selection-start-line="147" selection-start-column="28" selection-end-line="147" selection-end-column="39" />
<folding>
<element signature="e#65#77#0" expanded="true" />
</folding>
<state relative-caret-position="273">
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/data/datasets/mot.py">
<entry file="file://$PROJECT_DIR$/tools/mix_data_ablation.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state>
<caret line="92" column="8" selection-start-line="92" selection-start-column="8" selection-end-line="92" selection-end-column="8" />
<state relative-caret-position="349">
<caret line="77" column="47" selection-start-line="77" selection-start-column="40" selection-end-line="77" selection-end-column="47" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/tools/train.py">
<entry file="file://$PROJECT_DIR$/yolox/core/meta_trainer.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="37" column="104" selection-start-line="37" selection-start-column="104" selection-end-line="37" selection-end-column="104" />
<state relative-caret-position="163">
<caret line="217" column="28" lean-forward="true" selection-start-line="217" selection-start-column="28" selection-end-line="217" selection-end-column="28" />
<folding> <folding>
<element signature="e#0#25#0" expanded="true" />
<element signature="e#65#90#0" expanded="true" />
<marker date="1639860079999" expanded="true" signature="3013:3309" ph="..." />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/experiments/train_mot17_on_mot20.sh">
<entry file="file://$PROJECT_DIR$/yolox/core/trainer.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state>
<caret column="152" selection-end-column="152" />
<state relative-caret-position="19">
<caret line="123" column="8" selection-start-line="123" selection-start-column="8" selection-end-line="123" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/yolox/core/meta_trainer.py">
<entry file="file://$PROJECT_DIR$/yolox/models/losses.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="47">
<caret line="84" column="21" selection-start-line="84" selection-start-column="12" selection-end-line="84" selection-end-column="21" />
<folding>
<element signature="e#65#90#0" expanded="true" />
<marker date="1638341974573" expanded="true" signature="2896:3166" ph="..." />
</folding>
<state relative-caret-position="-1038">
<caret line="10" column="8" selection-start-line="10" selection-start-column="8" selection-end-line="10" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<entry file="file://$PROJECT_DIR$/yolox/models/yolo_head.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<caret line="142" lean-forward="true" selection-start-line="142" selection-end-line="142" />
<state relative-caret-position="226">
<caret line="400" column="39" selection-start-line="400" selection-start-column="39" selection-end-line="400" selection-end-column="39" />
<folding>
<element signature="e#1260#3843#0" />
<element signature="e#4756#7329#0" />
<element signature="e#7400#8171#0" />
<element signature="e#8227#8853#0" />
<element signature="e#10722#11519#0" />
<element signature="e#15367#15615#0" />
<element signature="e#19041#22616#0" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>

+ 19
- 0
experiments/meta_gpu.sh View File

#PBS -N meta_bytetrack
#PBS -m abe
#PBS -M [email protected]
#PBS -l nodes=1:ppn=1:gpus=1
#PBS -q cuda9


export LD_LIBRARY_PATH=/share/apps/cuda/cuda-10.1/lib64:$LD_LIBRARY_PATH
export PATH=/share/apps/cuda/cuda-10.1/bin/:$PATH

source /share/apps/Anaconda/anaconda3.6/bin/activate abdollahpour.ce.sharif
conda activate abd_env


cd /home/abdollahpour.ce.sharif/ByteTrack



python tools/train.py -t metamot -f exps/example/metamot/yolox_x_mot17_on_mot20.py -d 1 -b 1 --fp16 -o -c /home/abdollahpour.ce.sharif/yolox_x.pth --local_rank 0 -expn train_17_on_20

+ 19
- 0
experiments/meta_gpu_resume.sh View File

#PBS -N meta_bytetrack_resume
#PBS -m abe
#PBS -M [email protected]
#PBS -l nodes=1:ppn=1:gpus=1
#PBS -q DP
#PBS -l mem=15GB

export LD_LIBRARY_PATH=/share/apps/cuda/cuda-10.1/lib64:$LD_LIBRARY_PATH
export PATH=/share/apps/cuda/cuda-10.1/bin/:$PATH

source /share/apps/Anaconda/anaconda3.6/bin/activate abdollahpour.ce.sharif
conda activate abd_env


cd /home/abdollahpour.ce.sharif/ByteTrack



python tools/train.py -t metamot -f exps/example/metamot/yolox_x_mot17_on_mot20.py -d 1 -b 1 --fp16 -o --resume --start_epoch 2 -c /home/abdollahpour.ce.sharif/ByteTrack/meta_experiments/train_17_on_20/latest_ckpt.pth.tar --local_rank 0 -expn train_17_on_20_resume

+ 4
- 4
exps/example/metamot/yolox_x_mot17_on_mot20.py View File

self.depth = 1.33 self.depth = 1.33
self.width = 1.25 self.width = 1.25
self.exp_name = os.path.split(os.path.realpath(__file__))[1].split(".")[0] self.exp_name = os.path.split(os.path.realpath(__file__))[1].split(".")[0]
self.train_dir = '/media/external_10TB/10TB/vision/ByteTrackData/MOT17/annotations'
self.train_dir = '/home/abdollahpour.ce.sharif/ByteTrackData/MOT17/annotations'
onlyfiles = [f for f in listdir(self.train_dir) if isfile(join(self.train_dir, f))] onlyfiles = [f for f in listdir(self.train_dir) if isfile(join(self.train_dir, f))]
self.train_anns = [file for file in onlyfiles if file.__contains__('train') and file.__contains__('FRCNN')] self.train_anns = [file for file in onlyfiles if file.__contains__('train') and file.__contains__('FRCNN')]
# # TODO: remove # # TODO: remove
# self.train_anns = self.train_anns[:1]
# self.train_anns = self.train_anns[3:]


self.val_dir = '/media/external_10TB/10TB/vision/ByteTrackData/MOT20/annotations'
self.val_dir = '/home/abdollahpour.ce.sharif/ByteTrackData/MOT20/annotations'
onlyfiles = [f for f in listdir(self.val_dir) if isfile(join(self.val_dir, f))] onlyfiles = [f for f in listdir(self.val_dir) if isfile(join(self.val_dir, f))]
self.val_anns = [file for file in onlyfiles if file.__contains__('train') and file.__contains__( self.val_anns = [file for file in onlyfiles if file.__contains__('train') and file.__contains__(
'MOT20')] 'MOT20')]
# self.test_size = (736, 1920) # self.test_size = (736, 1920)
self.random_size = (20, 36) self.random_size = (20, 36)
self.max_epoch = 80 self.max_epoch = 80
self.print_interval = 20
self.print_interval = 100
self.eval_interval = 5 self.eval_interval = 5
self.test_conf = 0.001 self.test_conf = 0.001
self.nmsthre = 0.7 self.nmsthre = 0.7

+ 1
- 0
requirements.txt View File

motmetrics motmetrics
filterpy filterpy
h5py h5py
learn2learn


# verified versions # verified versions
onnx==1.8.1 onnx==1.8.1

+ 39
- 20
yolox/core/meta_trainer.py View File

self.train_in_task() self.train_in_task()
self.after_epoch() self.after_epoch()


def train_in_iter(self, task):
for self.iter in range(len(task)):
def train_in_iter(self):
for self.iter in range(len(self.train_loader)):
self.before_iter() self.before_iter()
self.train_one_iter() self.train_one_iter()
self.after_iter() self.after_iter()


def train_in_task(self): def train_in_task(self):
for task in self.train_loaders:
self.before_task(task)
self.train_in_iter(task)
self.after_task()

def before_task(self, train_loader):
logger.info("init prefetcher, this might take one minute or less...")
self.train_loader = train_loader
self.prefetcher = DataPrefetcher(train_loader)
for i in range(len(self.train_loaders)):
self.before_task(i)
self.train_in_iter()

self.after_task(i)

def before_task(self, i):
# logger.info("init prefetcher, this might take one minute or less...")
self.train_loader = self.train_loaders[i]
self.prefetcher = self.prefetchers[i]
self.learner = self.model.clone() self.learner = self.model.clone()
logger.info("model clone created. dataloader:{}".format(i))


def after_task(self):
pass
def after_task(self,i):
self.epoch_progress += len(self.train_loaders[i])


def adapt(self, inps, targets): def adapt(self, inps, targets):
# adapt_inps =inps[:1, ...] # adapt_inps =inps[:1, ...]
outputs = self.learner(inps, targets) outputs = self.learner(inps, targets)
loss = outputs["total_loss"] loss = outputs["total_loss"]
self.learner.adapt(loss) self.learner.adapt(loss)
del outputs, loss


def train_one_iter(self): def train_one_iter(self):
iter_start_time = time.time() iter_start_time = time.time()
targets = targets.to(self.data_type) targets = targets.to(self.data_type)
targets.requires_grad = False targets.requires_grad = False
data_end_time = time.time() data_end_time = time.time()
# logger.info("in train iter")
with torch.cuda.amp.autocast(enabled=self.amp_training): with torch.cuda.amp.autocast(enabled=self.amp_training):
if self.iter % self.adaptation_period == 0: if self.iter % self.adaptation_period == 0:
self.adapt(inps, targets) self.adapt(inps, targets)
lr=lr, lr=lr,
**outputs, **outputs,
) )
del loss, outputs


def before_train(self): def before_train(self):
logger.info("args: {}".format(self.args)) logger.info("args: {}".format(self.args))
# from torchsummary import summary # from torchsummary import summary
# summary(model, input_size=(3, 300, 300), device='cuda') # summary(model, input_size=(3, 300, 300), device='cuda')
# value of epoch will be set in `resume_train` # value of epoch will be set in `resume_train`
model = self.resume_train(model)


self.model = l2l.algorithms.MAML(model, lr=self.exp.inner_lr, first_order=self.exp.first_order) self.model = l2l.algorithms.MAML(model, lr=self.exp.inner_lr, first_order=self.exp.first_order)


# solver related init # solver related init
self.optimizer = self.exp.get_optimizer(self.args.batch_size) self.optimizer = self.exp.get_optimizer(self.args.batch_size)


self.model = self.resume_train(self.model)

# data related init # data related init
self.no_aug = self.start_epoch >= self.max_epoch - self.exp.no_aug_epochs self.no_aug = self.start_epoch >= self.max_epoch - self.exp.no_aug_epochs


print('Getting data loaders')
logger.info('Getting data loaders')
self.train_loaders = self.exp.get_data_loaders( self.train_loaders = self.exp.get_data_loaders(
batch_size=self.args.batch_size, batch_size=self.args.batch_size,
is_distributed=self.is_distributed, is_distributed=self.is_distributed,


# max_iter means iters per epoch # max_iter means iters per epoch
self.max_iter = 0 self.max_iter = 0
for train_loader in self.train_loaders:
self.prefetchers = []
for i, train_loader in enumerate(self.train_loaders):
self.max_iter += len(train_loader) self.max_iter += len(train_loader)
self.prefetchers.append(DataPrefetcher(train_loader))


self.lr_scheduler = self.exp.get_lr_scheduler( self.lr_scheduler = self.exp.get_lr_scheduler(
self.exp.basic_lr_per_img * self.args.batch_size, self.max_iter self.exp.basic_lr_per_img * self.args.batch_size, self.max_iter


def before_epoch(self): def before_epoch(self):
logger.info("---> start train epoch{}".format(self.epoch + 1)) logger.info("---> start train epoch{}".format(self.epoch + 1))
self.epoch_progress = 0
if self.epoch + 1 == self.max_epoch - self.exp.no_aug_epochs or self.no_aug: if self.epoch + 1 == self.max_epoch - self.exp.no_aug_epochs or self.no_aug:


logger.info("--->No mosaic aug now!") logger.info("--->No mosaic aug now!")
self.save_ckpt(ckpt_name="last_mosaic_epoch") self.save_ckpt(ckpt_name="last_mosaic_epoch")


def after_epoch(self): def after_epoch(self):
self.epoch_progress = 0
if self.use_model_ema: if self.use_model_ema:
self.ema_model.update_attr(self.model) self.ema_model.update_attr(self.model)


eta_str = "ETA: {}".format(datetime.timedelta(seconds=int(eta_seconds))) eta_str = "ETA: {}".format(datetime.timedelta(seconds=int(eta_seconds)))


progress_str = "epoch: {}/{}, iter: {}/{}".format( progress_str = "epoch: {}/{}, iter: {}/{}".format(
self.epoch + 1, self.max_epoch, self.iter + 1, self.max_iter
self.epoch + 1, self.max_epoch, self.iter + 1 + self.epoch_progress, self.max_iter
) )
loss_meter = self.meter.get_filtered_meter("loss") loss_meter = self.meter.get_filtered_meter("loss")
loss_str = ", ".join( loss_str = ", ".join(


@property @property
def progress_in_iter(self): def progress_in_iter(self):
return self.epoch * self.max_iter + self.iter
return self.epoch * self.max_iter + self.iter + self.epoch_progress


def resume_train(self, model): def resume_train(self, model):
if self.args.resume: if self.args.resume:
ckpt_file = self.args.ckpt ckpt_file = self.args.ckpt


ckpt = torch.load(ckpt_file, map_location=self.device) ckpt = torch.load(ckpt_file, map_location=self.device)

# handling meta models
# new_dict = {}
# for key in ckpt["model"].keys():
# if key.startswith('module.'):
# new_dict[key[7:]] = ckpt["model"][key]
# else:
# new_dict[key] = ckpt["model"][key]
# del ckpt["model"]
# ckpt["model"] = new_dict

# resume the model/optimizer state dict # resume the model/optimizer state dict
model.load_state_dict(ckpt["model"]) model.load_state_dict(ckpt["model"])
self.optimizer.load_state_dict(ckpt["optimizer"]) self.optimizer.load_state_dict(ckpt["optimizer"])

+ 2
- 2
yolox/data/dataloading.py View File

import torch import torch
from torch.utils.data.dataloader import DataLoader as torchDataLoader from torch.utils.data.dataloader import DataLoader as torchDataLoader
from torch.utils.data.dataloader import default_collate from torch.utils.data.dataloader import default_collate
from yolox import statics
import os import os
import random import random


import yolox import yolox


yolox_path = os.path.dirname(os.path.dirname(yolox.__file__)) yolox_path = os.path.dirname(os.path.dirname(yolox.__file__))
yolox_datadir = os.path.join(yolox_path, "/media/external_10TB/10TB/vision/ByteTrackData")
yolox_datadir = os.path.join(yolox_path, statics.DATA_PATH)
return yolox_datadir return yolox_datadir





+ 2
- 1
yolox/exp/base_meta_exp.py View File



def __init__(self): def __init__(self):
self.seed = None self.seed = None
self.output_dir = "./YOLOX_outputs"
# self.output_dir = "./YOLOX_outputs"
self.output_dir = "./meta_experiments"
self.print_interval = 100 self.print_interval = 100
self.eval_interval = 10 self.eval_interval = 10



+ 84
- 80
yolox/models/yolo_head.py View File



class YOLOXHead(nn.Module): class YOLOXHead(nn.Module):
def __init__( def __init__(
self,
num_classes,
width=1.0,
strides=[8, 16, 32],
in_channels=[256, 512, 1024],
act="silu",
depthwise=False,
self,
num_classes,
width=1.0,
strides=[8, 16, 32],
in_channels=[256, 512, 1024],
act="silu",
depthwise=False,
): ):
""" """
Args: Args:
expanded_strides = [] expanded_strides = []


for k, (cls_conv, reg_conv, stride_this_level, x) in enumerate( for k, (cls_conv, reg_conv, stride_this_level, x) in enumerate(
zip(self.cls_convs, self.reg_convs, self.strides, xin)
zip(self.cls_convs, self.reg_convs, self.strides, xin)
): ):
x = self.stems[k](x) x = self.stems[k](x)
cls_x = x cls_x = x
y_shifts.append(grid[:, :, 1]) y_shifts.append(grid[:, :, 1])
expanded_strides.append( expanded_strides.append(
torch.zeros(1, grid.shape[1]) torch.zeros(1, grid.shape[1])
.fill_(stride_this_level)
.type_as(xin[0])
.fill_(stride_this_level)
.type_as(xin[0])
) )
if self.use_l1: if self.use_l1:
batch_size = reg_output.shape[0] batch_size = reg_output.shape[0]
outputs.append(output) outputs.append(output)


if self.training: if self.training:
# logger.info("labels.shape:{}".format(labels.shape))
# logger.info("torch.cat(outputs, 1).shape:{}".format(torch.cat(outputs, 1).shape))
return self.get_losses( return self.get_losses(
imgs, imgs,
x_shifts, x_shifts,
return outputs return outputs


def get_losses( def get_losses(
self,
imgs,
x_shifts,
y_shifts,
expanded_strides,
labels,
outputs,
origin_preds,
dtype,
self,
imgs,
x_shifts,
y_shifts,
expanded_strides,
labels,
outputs,
origin_preds,
dtype,
): ):
bbox_preds = outputs[:, :, :4] # [batch, n_anchors_all, 4] bbox_preds = outputs[:, :, :4] # [batch, n_anchors_all, 4]
obj_preds = outputs[:, :, 4].unsqueeze(-1) # [batch, n_anchors_all, 1] obj_preds = outputs[:, :, 4].unsqueeze(-1) # [batch, n_anchors_all, 1]
gt_bboxes_per_image = labels[batch_idx, :num_gt, 1:5] gt_bboxes_per_image = labels[batch_idx, :num_gt, 1:5]
gt_classes = labels[batch_idx, :num_gt, 0] gt_classes = labels[batch_idx, :num_gt, 0]
bboxes_preds_per_image = bbox_preds[batch_idx] bboxes_preds_per_image = bbox_preds[batch_idx]
try: try:
( (
gt_matched_classes, gt_matched_classes,
labels, labels,
imgs, imgs,
) )
except RuntimeError:
except RuntimeError as e:
logger.info( logger.info(
"OOM RuntimeError is raised due to the huge memory cost during label assignment. \ "OOM RuntimeError is raised due to the huge memory cost during label assignment. \
CPU mode is applied in this batch. If you want to avoid this issue, \ CPU mode is applied in this batch. If you want to avoid this issue, \
try to reduce the batch size or image size."
try to reduce the batch size or image size. " + str(e)
) )
print("OOM RuntimeError is raised due to the huge memory cost during label assignment. \ print("OOM RuntimeError is raised due to the huge memory cost during label assignment. \
CPU mode is applied in this batch. If you want to avoid this issue, \ CPU mode is applied in this batch. If you want to avoid this issue, \
try to reduce the batch size or image size.")
try to reduce the batch size or image size. " + str(e))
torch.cuda.empty_cache() torch.cuda.empty_cache()
( (
gt_matched_classes, gt_matched_classes,
imgs, imgs,
"cpu", "cpu",
) )

torch.cuda.empty_cache() torch.cuda.empty_cache()
num_fg += num_fg_img num_fg += num_fg_img


if self.use_l1: if self.use_l1:
l1_targets = torch.cat(l1_targets, 0) l1_targets = torch.cat(l1_targets, 0)



# TODO: check loss parts shapes

num_fg = max(num_fg, 1) num_fg = max(num_fg, 1)
loss_iou = ( loss_iou = (
self.iou_loss(bbox_preds.view(-1, 4)[fg_masks], reg_targets)
).sum() / num_fg
self.iou_loss(bbox_preds.view(-1, 4)[fg_masks], reg_targets)
).sum() / num_fg
loss_obj = ( loss_obj = (
self.bcewithlog_loss(obj_preds.view(-1, 1), obj_targets)
).sum() / num_fg
self.bcewithlog_loss(obj_preds.view(-1, 1), obj_targets)
).sum() / num_fg
loss_cls = ( loss_cls = (
self.bcewithlog_loss(
cls_preds.view(-1, self.num_classes)[fg_masks], cls_targets
)
).sum() / num_fg
self.bcewithlog_loss(
cls_preds.view(-1, self.num_classes)[fg_masks], cls_targets
)
).sum() / num_fg
if self.use_l1: if self.use_l1:
loss_l1 = ( loss_l1 = (
self.l1_loss(origin_preds.view(-1, 4)[fg_masks], l1_targets)
).sum() / num_fg
self.l1_loss(origin_preds.view(-1, 4)[fg_masks], l1_targets)
).sum() / num_fg
else: else:
loss_l1 = 0.0 loss_l1 = 0.0




@torch.no_grad() @torch.no_grad()
def get_assignments( def get_assignments(
self,
batch_idx,
num_gt,
total_num_anchors,
gt_bboxes_per_image,
gt_classes,
bboxes_preds_per_image,
expanded_strides,
x_shifts,
y_shifts,
cls_preds,
bbox_preds,
obj_preds,
labels,
imgs,
mode="gpu",
self,
batch_idx,
num_gt,
total_num_anchors,
gt_bboxes_per_image,
gt_classes,
bboxes_preds_per_image,
expanded_strides,
x_shifts,
y_shifts,
cls_preds,
bbox_preds,
obj_preds,
labels,
imgs,
mode="gpu",
): ):


if mode == "cpu": if mode == "cpu":


gt_cls_per_image = ( gt_cls_per_image = (
F.one_hot(gt_classes.to(torch.int64), self.num_classes) F.one_hot(gt_classes.to(torch.int64), self.num_classes)
.float()
.unsqueeze(1)
.repeat(1, num_in_boxes_anchor, 1)
.float()
.unsqueeze(1)
.repeat(1, num_in_boxes_anchor, 1)
) )
pair_wise_ious_loss = -torch.log(pair_wise_ious + 1e-8) pair_wise_ious_loss = -torch.log(pair_wise_ious + 1e-8)




with torch.cuda.amp.autocast(enabled=False): with torch.cuda.amp.autocast(enabled=False):
cls_preds_ = ( cls_preds_ = (
cls_preds_.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_()
* obj_preds_.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_()
cls_preds_.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_()
* obj_preds_.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_()
) )
pair_wise_cls_loss = F.binary_cross_entropy( pair_wise_cls_loss = F.binary_cross_entropy(
cls_preds_.sqrt_(), gt_cls_per_image, reduction="none" cls_preds_.sqrt_(), gt_cls_per_image, reduction="none"
del cls_preds_ del cls_preds_


cost = ( cost = (
pair_wise_cls_loss
+ 3.0 * pair_wise_ious_loss
+ 100000.0 * (~is_in_boxes_and_center)
pair_wise_cls_loss
+ 3.0 * pair_wise_ious_loss
+ 100000.0 * (~is_in_boxes_and_center)
) )


( (
) )


def get_in_boxes_info( def get_in_boxes_info(
self,
gt_bboxes_per_image,
expanded_strides,
x_shifts,
y_shifts,
total_num_anchors,
num_gt,
img_size
self,
gt_bboxes_per_image,
expanded_strides,
x_shifts,
y_shifts,
total_num_anchors,
num_gt,
img_size
): ):
expanded_strides_per_image = expanded_strides[0] expanded_strides_per_image = expanded_strides[0]
x_shifts_per_image = x_shifts[0] * expanded_strides_per_image x_shifts_per_image = x_shifts[0] * expanded_strides_per_image
y_shifts_per_image = y_shifts[0] * expanded_strides_per_image y_shifts_per_image = y_shifts[0] * expanded_strides_per_image
x_centers_per_image = ( x_centers_per_image = (
(x_shifts_per_image + 0.5 * expanded_strides_per_image) (x_shifts_per_image + 0.5 * expanded_strides_per_image)
.unsqueeze(0)
.repeat(num_gt, 1)
.unsqueeze(0)
.repeat(num_gt, 1)
) # [n_anchor] -> [n_gt, n_anchor] ) # [n_anchor] -> [n_gt, n_anchor]
y_centers_per_image = ( y_centers_per_image = (
(y_shifts_per_image + 0.5 * expanded_strides_per_image) (y_shifts_per_image + 0.5 * expanded_strides_per_image)
.unsqueeze(0)
.repeat(num_gt, 1)
.unsqueeze(0)
.repeat(num_gt, 1)
) )


gt_bboxes_per_image_l = ( gt_bboxes_per_image_l = (
(gt_bboxes_per_image[:, 0] - 0.5 * gt_bboxes_per_image[:, 2]) (gt_bboxes_per_image[:, 0] - 0.5 * gt_bboxes_per_image[:, 2])
.unsqueeze(1)
.repeat(1, total_num_anchors)
.unsqueeze(1)
.repeat(1, total_num_anchors)
) )
gt_bboxes_per_image_r = ( gt_bboxes_per_image_r = (
(gt_bboxes_per_image[:, 0] + 0.5 * gt_bboxes_per_image[:, 2]) (gt_bboxes_per_image[:, 0] + 0.5 * gt_bboxes_per_image[:, 2])
.unsqueeze(1)
.repeat(1, total_num_anchors)
.unsqueeze(1)
.repeat(1, total_num_anchors)
) )
gt_bboxes_per_image_t = ( gt_bboxes_per_image_t = (
(gt_bboxes_per_image[:, 1] - 0.5 * gt_bboxes_per_image[:, 3]) (gt_bboxes_per_image[:, 1] - 0.5 * gt_bboxes_per_image[:, 3])
.unsqueeze(1)
.repeat(1, total_num_anchors)
.unsqueeze(1)
.repeat(1, total_num_anchors)
) )
gt_bboxes_per_image_b = ( gt_bboxes_per_image_b = (
(gt_bboxes_per_image[:, 1] + 0.5 * gt_bboxes_per_image[:, 3]) (gt_bboxes_per_image[:, 1] + 0.5 * gt_bboxes_per_image[:, 3])
.unsqueeze(1)
.repeat(1, total_num_anchors)
.unsqueeze(1)
.repeat(1, total_num_anchors)
) )


b_l = x_centers_per_image - gt_bboxes_per_image_l b_l = x_centers_per_image - gt_bboxes_per_image_l
is_in_boxes_anchor = is_in_boxes_all | is_in_centers_all is_in_boxes_anchor = is_in_boxes_all | is_in_centers_all


is_in_boxes_and_center = ( is_in_boxes_and_center = (
is_in_boxes[:, is_in_boxes_anchor] & is_in_centers[:, is_in_boxes_anchor]
is_in_boxes[:, is_in_boxes_anchor] & is_in_centers[:, is_in_boxes_anchor]
) )
del gt_bboxes_per_image_clip del gt_bboxes_per_image_clip
return is_in_boxes_anchor, is_in_boxes_and_center return is_in_boxes_anchor, is_in_boxes_and_center

Loading…
Cancel
Save