In the middle of the desert you can say anything you want
In line with Day 784 about unmounting broken endpoints, yesterday I got a lot of errors (thunar didn’t start, I blamed memory, but df -h also didn’t start…), at the end the issue was with a sshfs directory:
fuse: bad mount point ./mountpoint’: Transport endpoint is not connected`
Using day 784 didn’t help, still got the above error. This helped:
fusermount -uz myserver
Also, TODO: Why doesn’t linking stuff like this work?
{%raw%}
[Day 784]({% post_url 2021-02-23-day784.markdown %})
{%endraw%}
a is True is false for a numpy array of one element a, even if it’s value is True. a == True works correctly. Why does this happen?
You can use the console not just to look for output, but to interact with the variables etc! Why didn’t I think of this before: Using Debug Console | PyCharm
I like giving code examples in C++, Java and Python for the same help topic! OpenCV: Creating Bounding boxes and circles for contours
(22:31:53/11773)~/$ xinput list-props 15
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (170): 1
Coordinate Transformation Matrix (172): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (304): 1
Device Accel Constant Deceleration (305): 2.500000
Device Accel Adaptive Deceleration (306): 1.000000
Device Accel Velocity Scaling (307): 12.500000
Synaptics Edges (327): 1574, 5368, 1408, 4444
Synaptics Finger (328): 25, 30, 0
Synaptics Tap Time (329): 180
Synaptics Tap Move (330): 248
Synaptics Tap Durations (331): 180, 180, 100
Synaptics ClickPad (332): 1
Synaptics Middle Button Timeout (333): 0
Synaptics Two-Finger Pressure (334): 282
Synaptics Two-Finger Width (335): 7
Synaptics Scrolling Distance (336): 112, 112
Synaptics Edge Scrolling (337): 1, 0, 0
Synaptics Two-Finger Scrolling (338): 1, 0
Synaptics Move Speed (339): 1.000000, 1.750000, 0.035417, 0.000000
Synaptics Off (340): 0
Synaptics Locked Drags (341): 0
Synaptics Locked Drags Timeout (342): 5000
Synaptics Tap Action (343): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (344): 1, 3, 0
Synaptics Circular Scrolling (345): 0
Synaptics Circular Scrolling Distance (346): 0.100000
Synaptics Circular Scrolling Trigger (347): 0
Synaptics Circular Pad (348): 0
Synaptics Palm Detection (349): 0
Synaptics Palm Dimensions (350): 10, 200
Synaptics Coasting Speed (351): 20.000000, 50.000000
Synaptics Pressure Motion (352): 30, 160
Synaptics Pressure Motion Factor (353): 1.000000, 1.000000
Synaptics Resolution Detect (354): 1
Synaptics Grab Event Device (355): 0
Synaptics Gestures (356): 1
Synaptics Capabilities (357): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (358): 54, 45
Synaptics Area (359): 0, 0, 0, 0
Synaptics Soft Button Areas (360): 3471, 0, 4054, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (361): 28, 28
Device Product ID (297): 2, 7
Device Node (296): "/dev/input/event5"
(22:31:59/11774)~/$ xinput set-prop 15 349 1
If there are too many people with video on, Google Hangouts moves the ones who talk closer to the beginning, making them visible?
Got bitten yet again when copypasting them - the name of one of them had four leading tabs. THAT DIDN"T GET SHOWN UNTIL I TRIED TO EDIT THE ENVIRONMENT VARIABLE IN THE PYCHARM WINDOW - it removes them when visualizing. Why? (The parameter of the last one had a trailing space too)
-0.0 exists as float, and gets stored like this. Though it’s not less than 0 or +0.0. Can’t easily google a way to detect if it’s a negative 0 or not.
Aesthetically very pleasant category: Category:SVG signatures of musicians - Wikimedia Commons
GitHub - Nukesor/pueue: Manage your shell commands. (thank you AA)
GitHub - kettanaito/naming-cheatsheet: Comprehensive language-agnostic guidelines on variables naming. Home of the A/HC/LC pattern. (thank you AA)
From it:
| Name | Prefix | Action (A) | High context (HC) | Low context (LC) |
|---|---|---|---|---|
getUser |
get |
User |
||
getUserMessages |
get |
User |
Messages |
|
handleClickOutside |
handle |
Click |
Outside |
|
shouldDisplayMessage |
should |
Display |
Message |
When training on different GPUs on the same server, I get errors like RuntimeError: DataLoader worker (pid 30141) exited unexpectedly with exit code 1.
The fix was to set the number of workers to 0: 1
cfg.DATALOADER.NUM_WORKERS = 2
From SO: 1
[..]the only difference between mAP for object detection and instance segmentation is that when calculating overlaps between predictions and ground truths, one uses the pixel-wise IOU rather than bounding box IOU.
Finding an optimal cutoff point in a ROC curve is largely arbitrary (or ‘depending on what you need’ based on the actual thing). A lot of ways to find this. (Nice list here, but I’d see if I can find a paper with a good overview: data visualization - How to determine best cutoff point and its confidence interval using ROC curve in R? - Cross Validated)
Nice series of posts on how Detectron2 works inside: Digging into Detectron 2 — part 1 | by Hiroto Honda | Medium
The best way to build intuition about how your model performs is by looking at predictions that it was confident about but got wrong. With FiftyOne, this is easy. For example, let’s create a view into our dataset looking at the samples with the most false positives
More examples of the same: IoU a better detection evaluation metric | by Eric Hofesmann | Towards Data Science
In my text notes, I use indentation heavily, but use bullet-point-dashes (-) and just indentation almost interchangeably:
One two
Three
Four
Five
- six
- seven
- eight
Nine
Ten
- 12
- Thirteen
Next part
From now on:
tensor.cpu().numpy() needs to be done when using GPU.
Паста с морепродуктами в сливочном соусе рецепт – итальянская кухня: паста и пицца. «Еда»
NVIDIA Nsight Systems | NVIDIA Developer
Found here (a nice article too): Object Detection from 9 FPS to 650 FPS in 6 Steps | paulbridger.com
Multiprocessing best practices — PyTorch 1.8.0 documentation
TL;DR:
torch.multiprocessingis a drop in replacement for Python’smultiprocessingmodule