Skip to content

Instantly share code, notes, and snippets.

@rcrowder
Last active August 29, 2015 14:23
Show Gist options
  • Save rcrowder/613c597af8527673dda7 to your computer and use it in GitHub Desktop.
Save rcrowder/613c597af8527673dda7 to your computer and use it in GitHub Desktop.
C++ TM extensive integration test result
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB1
Basic sequence learner. M=1, N=100, P=1.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| # active columns | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active columns (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 2273.0 | 0.0 | 2273.0 | 2273.0 | 227300.0 |
| # synapses | 25003.0 | 0.0 | 25003.0 | 25003.0 | 2500300.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB11
Like B5, but with activationThreshold = 8 and with each pattern
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+-----------+
| # active columns | 22.7474747 | 1.4930373 | 20.0 | 25.0 | 2252.0 |
| # predicted => active columns (correct) | 21.8484848 | 1.8332707 | 16.0 | 25.0 | 2163.0 |
| # predicted => inactive columns (extra) | 1.0 | 1.063632 | 0.0 | 5.0 | 99.0 |
| # unpredicted => active columns (bursting) | 0.8989899 | 1.123621 | 0.0 | 6.0 | 89.0 |
| # predicted => active cells (correct) | 21.8484848 | 1.8332707 | 16.0 | 25.0 | 2163.0 |
| # predicted => inactive cells (extra) | 1.0 | 1.063632 | 0.0 | 5.0 | 99.0 |
| # segments | 2318.85 | 25.4178579 | 2268.0 | 2357.0 | 231885.0 |
| # synapses | 24948.0 | 0.0 | 24948.0 | 24948.0 | 2494800.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB3
N=300, M=1, P=1. (See how high we can go with N)
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| # active columns | 23.006689 | 1.4094599 | 21.0 | 25.0 | 6879.0 |
| # predicted => active columns (correct) | 23.006689 | 1.4094599 | 21.0 | 25.0 | 6879.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.006689 | 1.4094599 | 21.0 | 25.0 | 6879.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 6879.0 | 0.0 | 6879.0 | 6879.0 | 2063700.0 |
| # synapses | 75669.0 | 0.0 | 75669.0 | 75669.0 | 22700700.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB4
N=100, M=3, P=1. (See how high we can go with N*M)
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| # active columns | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => active columns (correct) | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 6833.0 | 0.0 | 6833.0 | 6833.0 | 2049900.0 |
| # synapses | 75163.0 | 0.0 | 75163.0 | 75163.0 | 22548900.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB5
Like B1 but with cellsPerColumn = 4.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| # active columns | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active columns (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 2273.0 | 0.0 | 2273.0 | 2273.0 | 227300.0 |
| # synapses | 25003.0 | 0.0 | 25003.0 | 25003.0 | 2500300.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB6
Like B4 but with cellsPerColumn = 4.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
| # active columns | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => active columns (correct) | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.006734 | 1.4118147 | 21.0 | 25.0 | 6833.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 6833.0 | 0.0 | 6833.0 | 6833.0 | 2049900.0 |
| # synapses | 75163.0 | 0.0 | 75163.0 | 75163.0 | 22548900.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+------------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB7
Like B1 but with slower learning.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| # active columns | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active columns (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 2273.0 | 0.0 | 2273.0 | 2273.0 | 227300.0 |
| # synapses | 25003.0 | 0.0 | 25003.0 | 25003.0 | 2500300.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB8
Like B7 but with 4 cells per column.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| # active columns | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active columns (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 2273.0 | 0.0 | 2273.0 | 2273.0 | 227300.0 |
| # synapses | 25003.0 | 0.0 | 25003.0 | 25003.0 | 2500300.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testB9
Like B7 but present the sequence less than 4 times.
======================================================
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
| # active columns | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active columns (correct) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => inactive columns (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # unpredicted => active columns (bursting) | 22.959596 | 1.3992725 | 21.0 | 25.0 | 2273.0 |
| # predicted => active cells (correct) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => inactive cells (extra) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # segments | 2273.0 | 0.0 | 2273.0 | 2273.0 | 227300.0 |
| # synapses | 25003.0 | 0.0 | 25003.0 | 25003.0 | 2500300.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+-----------+--------------------+---------+---------+-----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH1
Learn two sequences with a short shared pattern.
======================================================
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
| # active columns | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => active columns (correct) | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => inactive columns (extra) | 1.0 | 4.2488389 | 0.0 | 20.0 | 38.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => inactive cells (extra) | 1.0 | 4.2488389 | 0.0 | 20.0 | 38.0 |
| # segments | 780.0 | 0.0 | 780.0 | 780.0 | 31200.0 |
| # synapses | 8580.0 | 0.0 | 8580.0 | 8580.0 | 343200.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH10
Orphan Decay mechanism reduce predicted inactive cells (extra predictions).
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => active columns (correct) | 23.0263158 | 1.3472553 | 21.0 | 25.0 | 875.0 |
| # predicted => inactive columns (extra) | 8.1578947 | 4.2582818 | 2.0 | 26.0 | 310.0 |
| # unpredicted => active columns (bursting) | 0.0263158 | 0.1600727 | 0.0 | 1.0 | 1.0 |
| # predicted => active cells (correct) | 24.1842105 | 3.2024272 | 21.0 | 35.0 | 919.0 |
| # predicted => inactive cells (extra) | 8.1578947 | 4.2582818 | 2.0 | 26.0 | 310.0 |
| # segments | 1366.025 | 0.1561249 | 1366.0 | 1367.0 | 54641.0 |
| # synapses | 15026.0 | 0.0 | 15026.0 | 15026.0 | 601040.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => active columns (correct) | 22.0789474 | 1.3646202 | 19.0 | 25.0 | 839.0 |
| # predicted => inactive columns (extra) | 1.3947368 | 3.3288173 | 0.0 | 21.0 | 53.0 |
| # unpredicted => active columns (bursting) | 0.9736842 | 1.0383905 | 0.0 | 4.0 | 37.0 |
| # predicted => active cells (correct) | 22.1052632 | 1.3724637 | 19.0 | 25.0 | 840.0 |
| # predicted => inactive cells (extra) | 1.3947368 | 3.3288173 | 0.0 | 21.0 | 53.0 |
| # segments | 1007.275 | 9.0470644 | 986.0 | 1023.0 | 40291.0 |
| # synapses | 10846.0 | 0.0 | 10846.0 | 10846.0 | 433840.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH2
Same as H1, but with cellsPerColumn == 4, and train multiple times.
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => active columns (correct) | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => inactive columns (extra) | 0.5263158 | 3.201454 | 0.0 | 20.0 | 20.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.0526316 | 1.3366763 | 21.0 | 25.0 | 876.0 |
| # predicted => inactive cells (extra) | 0.5263158 | 3.201454 | 0.0 | 20.0 | 20.0 |
| # segments | 991.0 | 0.0 | 991.0 | 991.0 | 39640.0 |
| # synapses | 10901.0 | 0.0 | 10901.0 | 10901.0 | 436040.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH3
Like H2, except the shared subsequence is in the beginning.
======================================================
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
| # active columns | 23.0789474 | 1.28517 | 21.0 | 25.0 | 877.0 |
| # predicted => active columns (correct) | 23.0789474 | 1.28517 | 21.0 | 25.0 | 877.0 |
| # predicted => inactive columns (extra) | 0.8684211 | 3.7004342 | 0.0 | 18.0 | 33.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.0789474 | 1.28517 | 21.0 | 25.0 | 877.0 |
| # predicted => inactive cells (extra) | 0.8684211 | 3.7004342 | 0.0 | 18.0 | 33.0 |
| # segments | 777.0 | 0.0 | 777.0 | 777.0 | 31080.0 |
| # synapses | 8547.0 | 0.0 | 8547.0 | 8547.0 | 341880.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+--------+--------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH4
Shared patterns. Similar to H2 except that patterns are shared between
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 23.2105263 | 1.3795097 | 21.0 | 25.0 | 882.0 |
| # predicted => active columns (correct) | 23.2105263 | 1.3795097 | 21.0 | 25.0 | 882.0 |
| # predicted => inactive columns (extra) | 1.7631579 | 5.1423638 | 0.0 | 17.0 | 67.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.6578947 | 2.7074587 | 21.0 | 38.0 | 899.0 |
| # predicted => inactive cells (extra) | 2.5789474 | 8.7136662 | 0.0 | 48.0 | 98.0 |
| # segments | 1546.0 | 0.0 | 1546.0 | 1546.0 | 61840.0 |
| # synapses | 17006.0 | 0.0 | 17006.0 | 17006.0 | 680240.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH5
Combination of H4) and H2).
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 23.2894737 | 1.3554548 | 21.0 | 25.0 | 885.0 |
| # predicted => active columns (correct) | 23.2894737 | 1.3554548 | 21.0 | 25.0 | 885.0 |
| # predicted => inactive columns (extra) | 1.3421053 | 4.6241717 | 0.0 | 19.0 | 51.0 |
| # unpredicted => active columns (bursting) | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| # predicted => active cells (correct) | 23.6842105 | 2.8571725 | 21.0 | 39.0 | 900.0 |
| # predicted => inactive cells (extra) | 1.7368421 | 6.0943641 | 0.0 | 29.0 | 66.0 |
| # segments | 1438.0 | 0.0 | 1438.0 | 1438.0 | 57520.0 |
| # synapses | 15818.0 | 0.0 | 15818.0 | 15818.0 | 632720.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
======================================================
Test: __main__.ExtensiveTemporalMemoryTest.testH9
Sensitivity to small amounts of spatial noise during inference
======================================================
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| Metric | mean | standard deviation | min | max | sum |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
| # active columns | 22.7105263 | 1.449281 | 20.0 | 25.0 | 863.0 |
| # predicted => active columns (correct) | 21.8947368 | 1.7590289 | 19.0 | 25.0 | 832.0 |
| # predicted => inactive columns (extra) | 1.6842105 | 3.2775574 | 0.0 | 21.0 | 64.0 |
| # unpredicted => active columns (bursting) | 0.8157895 | 0.8539464 | 0.0 | 3.0 | 31.0 |
| # predicted => active cells (correct) | 21.8947368 | 1.7590289 | 19.0 | 25.0 | 832.0 |
| # predicted => inactive cells (extra) | 1.6842105 | 3.2775574 | 0.0 | 21.0 | 64.0 |
| # segments | 1006.625 | 9.8961798 | 991.0 | 1022.0 | 40265.0 |
| # synapses | 10901.0 | 0.0 | 10901.0 | 10901.0 | 436040.0 |
| # predicted => active cells per column for each sequence | None | None | None | None | None |
| # sequences each predicted => active cells appears in | None | None | None | None | None |
+----------------------------------------------------------+------------+--------------------+---------+---------+----------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment