mirror of
https://github.com/nerfstudio-project/nerfstudio.git
synced 2026-11-12 10:55:57 +08:00
tcnn encoding integration (#608)
* tcnn encoding integration * Add tests, fix lint * lin
This commit is contained in:
1 parent
178043e906
commit
afda888591
10 files changed
+123
-21
No files matched your search
@@ -208,7 +208,7 @@
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
@@ -228,7 +228,7 @@
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAT70lEQVR4nO2cy48r9ZXH61TZbtv9fvhVrnLbrodbiIBmEBmkSCiLiCwYKWJFWMxIKNnMnVUQi4wQYjFo2IAi0AUUFBFlCHAXaGaDlA3DiqzIik3arirb7Sq/+/2w3XY9ZlG2u/wqP9rdt27X/QuOvaivzuf3/Z4v/O3nvw3R+XW6uEBVtUittYFoLkDrmrMKyN5yjQ8c8CGJI9KZ8G5+hddkCasdQkNFtGXEFVK8cXUhsX7JxIsRWvTThWW6jMWOZLwlr6CIijhPVKzgktObJ1ywzIf3BCKVDqbOHBmsXkYbF0jTgaBbmodUPAyGJcijOCXidH6DLrqpqhY5l7cQdQHQS82xj8DeckPwHaTwvBBOC2RSWuVURcRqh9CQEXURcQVVT0xx76y2mHgxQklBJr9MlR3xQxlvyisogiCOU9VRcMnZ9TM+UObCOYHg06HdY1cGuyyhtTOk6UDQDc1NKB4GdbDhU4oSw1R+kyl4qCqyfdbya+oCQFNz7iMgLl7yvkM+VOCJtEAkc+ucoolY7QAaTUTxIM6Q6tlWPIklmY2XtykpSOdXmJIzdqAQl61VFEERx6mKlZxqZg3exB7sECexuETQ0gZdNBmW54i0QKbEtZSiilh9H+oyourDYoqHXZaZWDlKiwGqMGrYORes8KEcH+EyoeTBgoBeFrHaGdJEEdjQ3ITipcGRCJ1RlBSmpS2m6IlXIHba8mmqB6CpOQ8RkLxN3nfIhYp8OCMQyb3NlKyJWL0Kdf2fB1RPRHEnvGoiVtmmxCCdX9N/DNmQV0FzAHauOsqYll4/5wMVHpcEgk/ju1VPGpp5tHYGTQRB1jR3WPXQmpMNXNBUnqCkLaawSFUgeiIHVGURQNachwiad1/yvmM+WOTDWYFMZbeSDchh9SpabyCyG3H4VE9E8STcGhvdj1JiiM6vM0UXta+GG60NRHMAdqHBc45P9GGJ4AUVz5O0uEkXF5kyRE6Nw0D0NNNb+rAMH0llN1OX/cOiiodxa2x0P0bnQnR+jS65qH2FqMvroA9zlFEtu3rBBfaFkMiTQhrfLS/y0CqgtRO4RBBkVVsIqR5ac7G+OkPlCUry0YUlpgzRYzmgKEsoyJrjSMPy7qawdcIHi3x4TyBTWV+yhmaxegWtNxDZhWA+zbOteFgnwkYPo5SIU+1/rhGGT7yManvLdT5Q5UN5nhAEYre4JIAsorVjaKiItqothFRvTHUlNi/ZeIGkRD9dXGJKaOxYCRo+cWmhldk85YKl9iceSJ479rB6Ea3XkZYLwTY1N6l4GQwSkaM4JeG0tEEXF+iqRl60thDYcX7QHUaprsRWg44VI4zoowtLdAmNHcshWVlCERVxHqlYYaElbJ7wobKAZzmSy/qT57qe9AxLOIAhjyhaxGlpnSkuxPf1Ye1/vg/I3nKd9x/wIYkn0mliV1oRNDmH1Y7hUkbUZcQVVL2UssCuNel4cZsW/XRhhSlhsSNZ/+e6nuRdcmbjtCNuXDqYPHVmsEYJrV909IRUvAyK7ZDHcUrEqfwmU3RTVW37rEfccku6uBWEcFogU9IapyjdT7wrbomVFhMvbVNSgM6v0GVH/EDBm91P3FFwKpm2uIkCwaVDyaOFdOcTdyDomrZAKF4GHInwKUVJYSq/xRQ8VAVegc8HlbQ9rKMnjtihHDYoackppzfO+ECFx/d4kk+HUscuwaCka9pCRPFS4NghTuNxiaClTbrooSvI9llrq6Mnurilt464UJ4j0wLBietJuUdJA6onpngSSzITrUQZMUAVVumikzpQ8MvWOoqgCHauOgpONbt6zgerPJ7jSD4TSu67BbRZRGsncIkisKa5SdVLaY6d0Lkubj666KHLsH3WCqjtH3OMQM7bFLaOuFBB0PVkI9VC9jri5kYcftUTVTysR03EqtuUGKLzq/onHm60P3Fd3LJr51ygyuOSQHBCOFX1CL2fOK56ac2Z8Nd0cYOv2PujhiW8Khs1HZZePxf8VR4XeZJP46mqh4dmEa33DdsJXFDxAkmLg0rqONIwyaP/85KAZ/hIKrvFNSA7oKTsgsZGD67ELb6vkfWukjrKqJZbueACB7wubuFkaZGHVh6td/UkrHrjmiuxVWeoAkFJfrqwRJch2v7EQdYcJxqWd7eEzeO2npBc1p+8QLNYw/iJbyte1gGJ7YMYJYXo/AZTdMWH7y/7XFvcksXlwf2FUhcSm5dQfu1lfVgy49eVtIo29GE+zUMqnv5hdLVHSaugZVbqfGBfCI4dxsSKETpnrqRlAc/yJJcJ6MuSrqT6shQZraSaC9BLzVkBZG+5LvgO+ZDEE4JApvIrnCpLWL37ieOqN6YssKstJl7cpsUAXVhmSo7oUf+ylN44EwIlLpwTCC4dSp04M9hlAa0ZxY1GsR3iJE6JYSq/QRc9TAUhz/X9Bb3UHAcI7C01BH1ZCg/uL4uIK6C6Qf32CTm9of9zfdjuyXAlTXSGbbKFUUraHZYU1/uUNKC69WWJjZeitOinCqtMaZSSVng8x5N9StpdlnQljcfyBCNt0kUvXUa2z3qWpZz3UvAd8aECR2QEIpnb4GRtr1fcooo7sagy0UqUzgWowhpbdMYPlXDjStyKDjWzdiEEKu1PPJTcby9LXXHr7i80JenLkpeuQPRU9g3sL1yo0F6WevYXqJXY7jBdSUWB4AR8lJKyA8PaStodxvuOhaA+LJnZHBS3bcWT8KhsdF8XtzWm6Iof9CxLJVTLrl3wbXET0vhuxTuopJTm3PHXdHHz0YVFugLRYzloELe8uylsHXOhkoBn+Ugqu5Wso3sjlqUYncPp/BpVctHVrri1l6XsSo337wshiSPT6fDQZUnfXxiqQOqb2+D+kne30hsnfKjE4XsCmcoEUhdYBquD/ANzpaTVzjAOlwSCF4hBJQ2pXlpzJbbqdLxIUpKfyS9S5bHDhiop44BE5DBGSe1laTQJ5oWwIBDJ/Ap3DRKsCHiWJ3USzBo+8elIkAvlecKcBOmYYX/pI8HO/tIlQbh49wU3VdW2z+XN9jBnBRBxqc75D/mQCXZSipudBDu5YJnHjdhpVNKZsTOH1Ywk2MXO65BgWPUyiCMROovH8wQjblElD10eS4K8rO0ZSNCnurv7S5TOmZGg4K9wYfju+bd07ByqpM10P3YOKinTh53UgRI2DCs6tOxaFzs5ATdRUirewU5TEswKZDKzZUKCRuwcQoKCf5/DuySYhpY0jATpjrgtURWIH12R4ImGie5WZvM41RW3CUiQLvXvL2VU21uG1+HBVNiZzPhS9cmwM1JrrU2HnV0SJCnRzxaW6BIaPblaljokeCqMwU6dBMcsS7y/I26kToLdZWkoCS7TZUf8cDgJCvgeT85GgvCM82OjkpKUFGDyo5T0lA+Mws6ukrKEYRhdGaWkOnbuimucquTNsbOPBM/by9IpF6zwuCgQKQEfRYI92DmaBAt8e1maiASHLUsTkmBH3Ipepk2C8KTz/rQPeLqSisKs2Kkr6QTYOZ4EB7DThAT1T3yRKQ8lwePOJ76b8ZmQYJQS8fbmNoQE9f1lLAnS8SJJi20S/BXy5eAw4wPecOzsKKkkELwQTpVnwk5dSTvYmcz4uVrPsjQFCab9k2AnEyuSlBhgCuYkaHw2N5IgqXhYDGV1PaHzm0xhiLj17i+70irfu7/0kSB8/dR7g0q6obknx84DDteVtA87dSWNKQs7a006Xox0xG0sdt4CCeriZk6CokCmhFDqyOzZ3IQEJ9lfEosqHL7x0rQPeMOx06Cko7CTjZW3KTHIjFHSaUlwLHZmHbUDaOif+LQkqH/iyYqXH02CPfvLAAnq+4tOgoP7Cyh/TRiVdBR2Gh/w2tgZOzZR0j7sdCOOTc0dlb1jlHQyEqRU146vTYITYud8SbD7bD75/tIlQT4T2D11dkkQaiV2qgc8dv2SpYok1d7MUOqoR0nnYUDqSmpxAzKH1Q6nNyC7+0sqjScPFjJoE5Tv2cFhBxw+9AHPaECyBndi1LAyh4sCOaEBOURJJzAg50iC5gbk3ElQFzc4ffvFaR/wjMN2Ou6EiQF5JW6WNyB7SPAGDMhBEoRvnn1npAHZq6QmBmS/khK1QQNyv70sEcn8cAOyq6RXBiTekpcM2DmOBMOKpx87B0kwt9Tg/V0STElrSWUcCRoNyGEkqO8v40mwb3/ZR0Dywj3kwTUNyCFK2jUgbyLKkV0954OVFH4LJDh3A3KQBOFp50f9D3i6OzHiAc/EgCRUb3xiA7Ib5RiFnYmYKQnmVi64wHVJsNeAHCTBuRuQgyQITzs/6mLntuKhO8NwRhrygGcwIHV3Illc5hA5j85oQI5S0rmQYBc7r0hwYgNSMCXBIQbkrCQI95AHZthJSyZRjqu01rAoR1Rx76y06Fh5LgakrqRmBuQ8SPBCCFS4sCgQugHJQ4+4Xd+AHCRB+ObZdyZ9wDM1IDN8xERJ2eh+W9z0zayrpBMbkLqSmhmQkqeZ3jzmQkNJUP/E+0mw14AcSoKp0uJcDMhRJAinb79ogp3DH/CiQ4Ydp0JlAc/yEZMoB6svS4z0OIra3V9A+Z6d6gFvEgNyjyeHRjn0ZekuRVG7+8vMUVSoldhpH/CY6ETYOTbKcUtR1F4DchQJXhmQt0uCoPw1MeoB79YMyCsSjJ7IeGu2KGqcksKM+MhFUeHwjZfmY0Dqb/QTGJCLine truncated
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
@@ -247,7 +247,7 @@
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAFf0lEQVR4nO2dXYLbIAyE442yPVqv1EP2Qps/92HTjXEACQTWyGEet5KsbFs+j7DD9Pf3nwOrj5kNmSY+Rh6mTDHXPE/CSDqerl1bkSvVdP7DCD+qKOzOxLBFJFeZw39OdL9/aMrpmxbH8L0IS+lTGoquZ6rrwLbvCqWWsswSJ1/9JsEvI1ot9z8g34S+7+qmi68FzDA6pRgA3DSmKhg2z5M9hKP9OQKvOCb+88gSxJfjmpYUeWfwLkWXr5M8GqdvuaKrWX6J25Jh8VsgcPCKYpwwLIRwu6aLIjUp5lIyzAbCdTcMmsqBkBj2gDCsU1dW06f0Fg9hwKZZOWLYE8KYTr3scg4ZRqfT1csNA44aMmw7CPcDrzQSkmF0ux1zUdZOvaKUPmVL0fVMrz8FbzoqpwyL/PbZWmParExZiugzyQDYpk3UiWF0PN7qmxLozafNbKkYhJGcurCUPsVKAYQd9f0j8GkzP44WRo9pszIlpTWE0Zy6uXozrAuEx7RZXmoBYUinXiR3DJumuWxPGESOps1J/WcYgTv1QKbgrc7K6wFhFzcMm2lLhjWD8Jg2l5b6Ft0u8XlcSU/sBxM28xbgPYSrAl2yfwE4sp029zOPEQhDOfXDgWeva/NIp1+X5h0M8Moj6ePjLqwir+to2mxuHuMQxrxh0KSYK7UqQEO4Arzsny7C6hsouBYHsAeEsZo+7GfazCoOYRyn3lUI5rEGwuDTZvNt3qKUJ4QHeJtLwjBECHvf5j0cChgmWoIMnXrFheRhypQmCvaEHfWtEdSjSlIIg4NXUgeTYXQ957YkzZ36btibdMLXa/bx9K20p23eoiLJJQjEqYuKlEdqUtqKH0e/yrzpCsEyLPdUBIJTVxbBZ1gcwpg3DMiqZpglhJ2+VBRIzbAAwoBOvVWYMqWfpBCGalooFwyLQBjKqdcVccSwJ4QdNQ2iJgwzgPBbTZtZ0fEoGUePaXMvEX3mIAzbd0a+GPaAMKxTl9dxyjC6fH1ypTs2sRv2VjOMbjfmq4ub6G2nzWxYDsIITr0uUpOysSIQxm/6VX4ZVvZk7o6nzXU00jMsuScMeMNgqH4M6wjhMW2WhK0hPF4q2lgPCPtq+lvG0+ZG5lH0ZK67abMj8xhAeIB3qW0Y1hjCe3ip6LApw+h4vCM7daH8MoxOv87WnRRofy/GJk9xg2paHMP3IiylTxFK+oVNVk59Y21vHvmT9GSloafNyI8qEVHy+4IGeJvrdUlg9oRB5GubtygmgDCgUxcUYUOkpfQpFWIgDNt3Wxk+qlQPYdtp827M4xrCY5u3hzIMw4Ww323eogsVLEHutnmF1fQpGkUO8cFvuolAzGMZhMc2b3VkKoWIbshOvTrFXEKGYUHYxUtF+qssGcYsQeZOPYzhexGW0qe00gPCvpquFiDDRBAeLxVVhAlTwjPlV0JtGlYVDLM5U36lHU+bw5jIDyNLEJRT3yV4lyo+xAek7yIhMyz5VASIU1fFeGDYC4TBnLoLaRhmBuE3mTazDHtCGNOp66vpU7pKBGG0piXywrAAwoBOvfhy3hj2H8Iebhig1Iphm0L4DafNbKnYmfIrjWlzT0X2hL+F3HRKHhlG8zwhO3Xptdy+GMt8a+IA71I9GNblTHlJEzubNlebxwSEYZy6vJQ+xURrCHvp+0feX4xd3wKhOfWcdmEeg0N8ikrXdeCOvb1fjO0FYfBpM455DCGM59RL5Y5hdD0ndyWRBT5tlptHykePl4qUKaweEIZ16lbazDy2hLDxtNmneYyfKV9UaGzzVuj5hgzgcbYpgYNXFPPCsPg5Ylg3DN62eYskOsQHrelOMjGPNWfKS0q/5zavsNpScQjjOPWGKeaKrgroEPa4zbtWlmH/AKFHCdZQ7bemAAAAAElFTkSuQmCC\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAILine truncated
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
@@ -266,7 +266,7 @@
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAABMElEQVR4nO3RMQ0AIADAMMAclhCJKGT0YFWwZPPuM+IsHfC7BmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYA7AEaVAKLKzpiawAAAABJRU5ErkJggg==\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAD/UlEQVR4nO2dUW7sIAxFCZvrlrrI7mn6M0qnCVgEbF/buF+V0JnnZOA8eoXM8fP1/Xodpf9zHC9iNNlFtur/k7FZAj+O1x2vCjXJsQQ+8S5Y2PLwkWtvgLEmOba4nTrn7/UyYKGmMOzItKvNMbma5FinOmp8ASV1pMi2v4CSOuJme3h1+jwrrCkd1d7A5+c+/dDBmqy9i09cja3nQKoZwlZiDFWTJgvfTVz/E04d3XFRtrELSh1pst1tqNPnWWEhS7D7BZTUUQtnZ2v+4YplfcfRKJZxyj6Io+ma5Fj4TrGHE6MicfRWalZj48TRKHZx2k3G0XRNcmw8HU3G0akjLnbHOFqOnZh24nG0HBtDR7U38OhDU0fTbP0c2PxdaLKYOBrFWt5NtONoArOpI7+5U3sbmjpSY2FxNIq1pqOaO8U7rsm+j6fnThHFOoijUazO8r3G0XRNxGgwNZ84MSoSR6ealVlncTSKlVuCVBxN10SMpo7GWSqOTh0psI7jaBTLO+144mg5NryOeOLo1NE0u0UcjWJHph1/HI1inS7fbhxNf2h4Naux1PF0j89jlsXE0SjWkY4YuqWkjlbYv+PpuVNUYy3G0XKscR014mgC8/guiu2p0z6evue7gLAW42gUC9ERdSwlno4M7iZqqhnLWo+jUazaEvwXR9M1EaOpo2n22i0ldaTMxomjUezilJ2Mo+ma5Nh4udNkHB1ezWpszDgaxU5MO8fNu2PoaLRbSupIiP13PN1ITTHYwWmnGkfLsX51NNMtJXXEyHaPpzt9HncsLI5GsdaWr2y3FL9qVmPfx9NTzSjWRByNYi3oSK95d+qoyTaOp6eONFlncbQci9KRxebdW+mIiqN3excQ1nEcjWJ5p5315t0WdopNnBgViaNTR0JskDgaxa5PO0/Nu0PqaCaOTh0xstvF0SgWE0ejWEfLl6FbSkg1q7EMd0my1xSexcTRKNa4jpi7paSOnrLMd0my1LQVazGOlmMN6kiweXfqaIQVvEtyuqatWOtxNIpVW74mmncbVHOBxNGpZn3WUxyNYkWXoLnm3bvpyNxdksXwUpBgY8bRciz7tHPcvDuGjka7peymZjV2tHm3Zk0x2MFpF6R5t9/caaZbSuqIkZ25S1K6pngsJo5Gsb50tNotJXW0yK7eJSlR01asiTgaxVpYvnrNu32p+cSlWb27JMdr2oo1F0ejWJSOMM27U0fnD+YuSbqm4nYZTbCO42g5VnMJ4pt3b64j/F2S95rueGA2SByNYtenrKfm3Rb+cG3ixKhIHL2DmtXYgHE0ip2bdl6bd4fR0VC3lNSRHDt0l6RyTQFYi3E0ijWuI+ZuKWHUrMYy3yXJUtNW7C9BRZxFsJrUQQAAAABJRU5ErkJggg==\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAFJklEQVR4nO2dUW6kQBBDIeJue6U95N6J/RhpMgFi3I2r2t2Q30HPrxRVTeSPMP/783c6+1nX+fSZeV5zOIPJLG8EeO71EQ57fYrDJJz3R4DTkcySGfbJSfh1GsrsOcvhc0FhRZAhZfac7S8gNCwIopXBHLnM8S8gKAxDMMfwnkhkljEuab8yS2bYlL5VVjKHnGX/3Ej3xErmkHPwHdDXCvcu8+uXsOEKW8lgDi+zrOvcywpbyTAcBrJkhg1/TypkCqqI62EkRCXDcJrLhFQRDMfqnjSUaVxFMBxDGcwRVxHCMPDMqMcNc6gqgg/ra/IcmVMOW0UwYX1NPnlslb6KYDgOkxdxxqwiGI7VVkXInFQR2rBQjqEM5lBVhDbManKTFZdVEQzHanKTFRdXEQzHZHKeM2YVwXCs7kmQDKoi5GFxHEMZzKGqCHkYCLrtcdNUEWTYdYhWBnP6qyIYjs/kJCd6qw6qiLiwIo6VDMORVRFxYUEcq60qlUFfwn1NznAMZQRVBB+GOfc8bqlVBMMxlMEccRURGsZzrGQYjqyKCA2L4FjdkwqZX7+E+5qc4Vht1fujq1VEUZjD5AwnUyavimA4VluVI/OjiogOE3IMZTCHqiKiw/ac57hVVhF1YRUQrQzmNJG5VEWUhlVDVDIMJ1kmqYpgOFb3JE3mu4pICFNxDGUwh6oiEsI2nHsetw2nporgw5wnbyWz4dRXEUyY8+QAgjlamS8MWtcZU15hGMJwXhATGYajklmm5540lVnI5yRhn5znj6XXT3EVcSWsCDKkzJ4TWEUwnOe4hVcRDOfOx20Z45L2K7Nkhk133SogU1ZFXAzjISoZhtNWJqqKYDhWW9VKJraKUHEMZTCHl1nmee3lnljJMBwGQlURqrDh70mFTEEVcT2MhKhkGE5zmZAqguFY3ZOGMo2rCIZjKIM54ipCGAaeGfW4YQ5VRfBhfU2eI3PKYasIJqyvySePrdJXEQzHYfIizphVBMOx2qoImZMqQhsWyjGUwRyqitCGWU1usuKyKoLhWE1usuLiKoLhmEzOc8asIhiO1T0JkkFVhDwsjmMogzlUFSEPA0G3PW6aKoIM+3yyDjKejLKKUHEMZTBHXEXEhRVxrGQYjqyKiAsL4vjckwqZS++StJqc4RjKCKoIPgxz7nncUqsIhmMogzniKiI0jOdYyTCc6q2qeYHDGJNHyDAcqopgwjqdHHPyZa5WEUVhDpMznEyZvCqC4VhtVY7MjyoiOkzIMZTBHKqKiA7bc57jFvguScPJMaeJzKUqojSsGqKSYTjJMklVBMOxuidpMt9VREKYimMogzlUFZEQtuHc87htOFHvkvSfvJXMhlNfRTBhzpMDCOZoZb4waM79/0cmMgxHJUO9wOG5J3EyBe+StJqc4RjK7Dkh75K0+vvESmbPCawiGM5z3MKrCIZz5+N2/gIHw8kxpy8Z9l2SVpMzHKutAjJlVcTFMB6ikmE4bWWiqgiGY7VVrWRiqwgVx1AGc3iZkxc4WN0TKxmGw0Bk75I0nBxzTGQKqojrYSREJcNwmsuEVBEMx+qeNJRpXEUwHEMZzBFXEcIw8Myoxw1zqCqCD+tr8hyZUw5bRTBhfU0+eWyVvopgOA6TF3HGrCIYjtVWRcicVBHasFCOoQzmUFWENsxqcpMVl1URDMdqcpMVF1cRDMdkcp4zZhXBcKzuSZAMqiLkYXEcQxnMoaoIeRgIuu1x01QRZNjnk3WQ8WSUVYSKYyiDOVdk/gNtqkp0QC1DFAAAAABJRU5ErkJggg==\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAC9UlEQVR4nO2XS27bQBAFhwDvlivlkLmTsggQjw2SYlM9/a23E2CUhZqFurY/v34PyV6vTfT32/YKApfybeC7OnogXQI/fYDmXszg3x4A6fbwfSkd+Fv4fuffxPzq7nAp/xB++huQ10t86fO+PQBeVOAi/o50FbiUTwdEgft0QHPp8+w6AOmHu3WGPqaPtF7M4Ld+A2J+9RpwOsAZXqQD8t67iTsgr/SxtANqeFnBX9gBSH8MpwOc4Ws7AOlv4fodgHQRnA6gA3rD6QAH+MjbAfXu3QQdUE/6vOcdUNvLJ/yFHYB0dTgd4AzX6QCkP4bTAc5wOsABPugAe/gZv3sHuN91QTvA3YsZPFAH9JE+RB3Q04sZ/PgBkG4Gf94Btb2YwWUdgHR1OB3gDKcD6IBacCmfDnCAjzgd0FP6PIcOQPq8rwfAiws8UAf0kS7rgJ5ezODHD4B0Mzgd4Azv0gFhT4zKHRBW+jw6oEcHIP1sCzsA6Xfgzh0Q1osZ3KEDkD7v6wHw4gKnA5zhdIAzvFoHpDu9KnRAOunz6AAFuJS/sAOQLoXTAT06AOlnW9gBSL8DpwOc4XSAM5wO8ISPvB1Q5t7N1AFlpM9T6ICSXlT4CzsA6VpwOsAZrtwBSJfCFToA6Z/A6QBP+KAD7OGDDrCHX/Cjd0D5ezdiB5SXPk/QAa28ROkApK+G0wE5OwDpWnA6wBlOB1jAL/itOyDCidGuAyJInxelA0J5sTwxPDugrfR5Bw+AF0v4vg49D+lncEEHtPJiBn/zG4D01XA6wBlOB2jCpfzXa2vRAdGkzx/pAAv4Bd+6A5D+YxYdgPQLeJQOiObFDO7ZAW2lzzt4ALxYwvcH6Pv0/0vnxQxOBzjDy3ZAltOrVAdkkT6PDtCES/kLOwDpN+GaHRBKupTfpQOQ/mMWHYD0Czgd4AynA5zhdIAzPH0HhDq9HsBTdkB26fPHsh2Q5fT6tAOQ/iGcDnCGr+oApN+Ea3YA0h/A6QBnOB3gBv/H/wvUsULj+PqALQAAAABJRU5ErkJggg==\"/></td><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAP10lEQVR4nO2dW7bjLIyFAQuJ5Aysp9SD7OlUjLiYfsB2HN/i+Jac86dWrXp1LRlv9uYjkvy///lfZmRL1qJjLC0ya+ugZGCvbFA2CieETcKJFGTyInmRokxRpCBSkqL9I5MAIaWQOslCSBISkkQhSQiSwhSCispgdaFgMBB5Im8MG+MQHRmHhjV5NA6NA/JgPJArjAfjFQZFXlGQGCUGgVFAJXUlikoUKRVJqHT/f1RSRikqKYISUSavhIPkiuSLinXFUDFEq6PTwepg0VvtLXrWzqKz5JweVsMysFelV1xJm4RLwonkHqtRCRFl6lZDCVkICUJCklpIbKqBUpASF6hIV3D7d3GMlpEZrUXLYBmsA/bSRsVVLr1wInmZvEhBpiDy8+7Vzw9TQhRC6iRBKN19mBSmSASVwcpQMOQNemMckjPGkWFNnoxDYk1eXxyQb16AL4xTFBQFSV5ilBgFRKkrAZUoUoIkZKf6lRRJykqIKIVXKSrhChFUclAxJFdUFmNdffAlBsZQ1z2/AGKLzqG1bTVy9Qv2qgyKK+GSYHGv/tNqFElqca8+SmGkIJUuuiJdGQpwuxmXH+a0ZW0ZrFMclI2S0/15XqYgKt+86uHzuq86Vx9FfpgwRUU6GQyGgqFgjCNyhhySI8N5yee1r8mBcXXpKRTGK/KSgtJRYJAYha4kRKErUaSkxEj1gxRRiihTKIQrUv0XKobKQbQYrQ5WB9a59IHRWWSLnjVb4rb0DpnBMpSu4LzwK8GP1YhSTFU/V6NIAoSiJEFIIwRKYZQglS5YkY6GAlEAW5qu7FinOCob7w9bIjvdV51lx0iBQphCGKhI32Xn0ln4iB4Nt9WHZvkXxhUUFAZ18UoHSbn0r8iOK4QvRmTHYi59lp37wmfMq5AtWdat7JSu4CBnZGdehLuy0xVhwmgwXIwj8vDvZrqyU0Zlq/ywHWTHNB+aIX8hl0UfyeeFT8ZpdPriNHnd6H5hfIF+veyEQnglgkpWV75IDBXrLDuB89rHjuKjZ2SLbImdtpaYdSs71qkswi4J+0o1ilrxlRaiXotSXBoRJgwX4w16Ik+G4V+JPdnJ+60XwskqirRadkzzoV2MJ/JZdsgwksuyk9e+Ng6okR3jCworZSeo5JUIjey0C9/pnuz4Er1DtugsOka2WJfeYWm1c0XpCutXinArO7kaXdlpRTgvRML6Beih7OQPLVc/LZCd3g5DkC4YCeMlWx3yZJjqf+9up7vl1rJjvKLwmuxEKWIuvaplh6HyUDFUNq/9RnbKx4XPyJaYdZYda7H1fltkZ6H3I/JETMbBP1vkHaaVHX62wyghtFD5VevOw+oPTVcXrHcYg7XskHF54VPtMhuv2ZUd4xXG1bKTXCEc3GXH6shQy45Fz63itwuf9vV+RSM7RLine truncated
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
@@ -318,7 +318,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": 18,
|
||||
"metadata": {
|
||||
"tags": [
|
||||
"hide-input"
|
||||
@@ -329,6 +329,8 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"tensor(0.0010, grad_fn=<MaxBackward1>)\n",
|
||||
"tensor(-0.0010, grad_fn=<MinBackward1>)\n",
|
||||
"Input Values:\n"
|
||||
]
|
||||
},
|
||||
@@ -354,7 +356,7 @@
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
"<table class=\"show_images\" style=\"border-spacing:0px;\"><tr><td style=\"padding:1px;\"><img width=\"128\" height=\"128\" style=\"border:1px solid black; image-rendering:pixelated; object-fit:cover;\" src=\"data:image/png;base64,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 truncated
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
@@ -373,7 +375,7 @@
|
||||
"num_levels = 8\n",
|
||||
"min_res = 2\n",
|
||||
"max_res = 128\n",
|
||||
"hash_table_size = 2**4 # Typically much larger tables are used\n",
|
||||
"log2_hashmap_size = 4 # Typically much larger tables are used\n",
|
||||
"\n",
|
||||
"resolution = 128\n",
|
||||
"slice = 0\n",
|
||||
@@ -385,15 +387,18 @@
|
||||
" num_levels=num_levels,\n",
|
||||
" min_res=min_res,\n",
|
||||
" max_res=max_res,\n",
|
||||
" hash_table_size=hash_table_size,\n",
|
||||
" log2_hashmap_size=log2_hashmap_size,\n",
|
||||
" features_per_level=features_per_level,\n",
|
||||
" hash_init_scale=0.001,\n",
|
||||
" implementation=\"torch\",\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"x_samples = torch.linspace(0, 1, resolution)\n",
|
||||
"grid = torch.stack(torch.meshgrid([x_samples, x_samples, x_samples], indexing=\"ij\"), dim=-1)\n",
|
||||
"\n",
|
||||
"encoded_values = encoder(grid)\n",
|
||||
"print(torch.max(encoded_values))\n",
|
||||
"print(torch.min(encoded_values))\n",
|
||||
"\n",
|
||||
"grid_slice = grid[slice, ...]\n",
|
||||
"encoded_values_slice = encoded_values[slice, ...]\n",
|
||||
@@ -420,7 +425,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"tags": [
|
||||
"hide-input"
|
||||
|
||||
File renamed without changes.
@@ -17,7 +17,7 @@ Encoding functions
|
||||
"""
|
||||
|
||||
from abc import abstractmethod
|
||||
from typing import Optional
|
||||
from typing import Literal, Optional
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
@@ -26,8 +26,16 @@ from torch import nn
|
||||
from torchtyping import TensorType
|
||||
|
||||
from nerfstudio.field_components.base import FieldModule
|
||||
from nerfstudio.utils.comments import print_tcnn_speed_warning
|
||||
from nerfstudio.utils.math import components_from_spherical_harmonics, expected_sin
|
||||
|
||||
try:
|
||||
import tinycudann as tcnn
|
||||
|
||||
TCNN_EXISTS = True
|
||||
except ImportError:
|
||||
TCNN_EXISTS = False
|
||||
|
||||
|
||||
class Encoding(FieldModule):
|
||||
"""Encode an input tensor. Intended to be subclassed
|
||||
@@ -215,9 +223,10 @@ class HashEncoding(Encoding):
|
||||
num_levels: Number of feature grids.
|
||||
min_res: Resolution of smallest feature grid.
|
||||
max_res: Resolution of largest feature grid.
|
||||
hash_table_size: Size of hash table.
|
||||
log2_hashmap_size: Size of hash map is 2^log2_hashmap_size.
|
||||
features_per_level: Number of features per level.
|
||||
hash_init_scale: Value to initialize hash grid.
|
||||
implementation: Implementation of hash encoding. Fallback to torch if tcnn not available.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
@@ -225,25 +234,43 @@ class HashEncoding(Encoding):
|
||||
num_levels: int = 16,
|
||||
min_res: int = 16,
|
||||
max_res: int = 1024,
|
||||
hash_table_size: int = 2**19,
|
||||
log2_hashmap_size: int = 19,
|
||||
features_per_level: int = 2,
|
||||
hash_init_scale: float = 0.001,
|
||||
implementation: Literal["tcnn", "torch"] = "tcnn",
|
||||
) -> None:
|
||||
|
||||
super().__init__(in_dim=3)
|
||||
self.num_levels = num_levels
|
||||
self.features_per_level = features_per_level
|
||||
self.hash_table_size = hash_table_size
|
||||
self.log2_hashmap_size = log2_hashmap_size
|
||||
self.hash_table_size = 2**log2_hashmap_size
|
||||
|
||||
levels = torch.arange(num_levels)
|
||||
growth_factor = np.exp((np.log(max_res) - np.log(min_res)) / (num_levels - 1))
|
||||
self.scalings = torch.floor(min_res * growth_factor**levels)
|
||||
|
||||
self.hash_offset = levels * hash_table_size
|
||||
self.hash_table = torch.rand(size=(hash_table_size * num_levels, features_per_level)) * 2 - 1
|
||||
self.hash_offset = levels * self.hash_table_size
|
||||
self.hash_table = torch.rand(size=(self.hash_table_size * num_levels, features_per_level)) * 2 - 1
|
||||
self.hash_table *= hash_init_scale
|
||||
self.hash_table = nn.Parameter(self.hash_table)
|
||||
|
||||
self.tcnn_encoding = None
|
||||
if not TCNN_EXISTS and implementation == "tcnn":
|
||||
print_tcnn_speed_warning("HashEncoding")
|
||||
elif implementation == "tcnn":
|
||||
self.tcnn_encoding = tcnn.Encoding(
|
||||
n_input_dims=3,
|
||||
encoding_config={
|
||||
"otype": "HashGrid",
|
||||
"n_levels": self.num_levels,
|
||||
"n_features_per_level": self.features_per_level,
|
||||
"log2_hashmap_size": self.log2_hashmap_size,
|
||||
"base_resolution": min_res,
|
||||
"per_level_scale": growth_factor,
|
||||
},
|
||||
)
|
||||
|
||||
def get_out_dim(self) -> int:
|
||||
return self.num_levels * self.features_per_level
|
||||
|
||||
@@ -266,9 +293,10 @@ class HashEncoding(Encoding):
|
||||
x += self.hash_offset.to(x.device)
|
||||
return x
|
||||
|
||||
def forward(self, in_tensor: TensorType["bs":..., "input_dim"]) -> TensorType["bs":..., "output_dim"]:
|
||||
assert in_tensor.shape[-1] == 3
|
||||
def pytorch_fwd(self, in_tensor: TensorType["bs":..., "input_dim"]) -> TensorType["bs":..., "output_dim"]:
|
||||
"""Forward pass using pytorch. Significantly slower than TCNN implementation."""
|
||||
|
||||
assert in_tensor.shape[-1] == 3
|
||||
in_tensor = in_tensor[..., None, :] # [..., 1, 3]
|
||||
scaled = in_tensor * self.scalings.view(-1, 1).to(in_tensor.device) # [..., L, 3]
|
||||
scaled_c = torch.ceil(scaled).type(torch.int32)
|
||||
@@ -308,6 +336,11 @@ class HashEncoding(Encoding):
|
||||
|
||||
return torch.flatten(encoded_value, start_dim=-2, end_dim=-1) # [..., num_levels * features_per_level]
|
||||
|
||||
def forward(self, in_tensor: TensorType["bs":..., "input_dim"]) -> TensorType["bs":..., "output_dim"]:
|
||||
if TCNN_EXISTS and self.tcnn_encoding is not None:
|
||||
return self.tcnn_encoding(in_tensor)
|
||||
return self.pytorch_fwd(in_tensor)
|
||||
|
||||
|
||||
class TensorCPEncoding(Encoding):
|
||||
"""Learned CANDECOMP/PARFAC (CP) decomposition encoding used in TensoRF
|
||||
|
||||
@@ -26,9 +26,9 @@ from torchtyping import TensorType
|
||||
|
||||
from nerfstudio.cameras.rays import RaySamples
|
||||
from nerfstudio.data.scene_box import SceneBox
|
||||
from nerfstudio.field_components.activations import trunc_exp
|
||||
from nerfstudio.field_components.spatial_distortions import SpatialDistortion
|
||||
from nerfstudio.fields.base_field import Field
|
||||
from nerfstudio.utils.activations import trunc_exp
|
||||
|
||||
try:
|
||||
import tinycudann as tcnn
|
||||
|
||||
@@ -26,10 +26,10 @@ from torchtyping import TensorType
|
||||
|
||||
from nerfstudio.cameras.rays import RaySamples
|
||||
from nerfstudio.data.scene_box import SceneBox
|
||||
from nerfstudio.field_components.activations import trunc_exp
|
||||
from nerfstudio.field_components.embedding import Embedding
|
||||
from nerfstudio.field_components.field_heads import FieldHeadNames
|
||||
from nerfstudio.fields.base_field import Field
|
||||
from nerfstudio.utils.activations import trunc_exp
|
||||
|
||||
try:
|
||||
import tinycudann as tcnn
|
||||
|
||||
@@ -27,6 +27,7 @@ from torchtyping import TensorType
|
||||
|
||||
from nerfstudio.cameras.rays import RaySamples
|
||||
from nerfstudio.data.scene_box import SceneBox
|
||||
from nerfstudio.field_components.activations import trunc_exp
|
||||
from nerfstudio.field_components.embedding import Embedding
|
||||
from nerfstudio.field_components.encoding import Encoding, HashEncoding, SHEncoding
|
||||
from nerfstudio.field_components.field_heads import (
|
||||
@@ -41,7 +42,6 @@ from nerfstudio.field_components.spatial_distortions import (
|
||||
SpatialDistortion,
|
||||
)
|
||||
from nerfstudio.fields.base_field import Field
|
||||
from nerfstudio.utils.activations import trunc_exp
|
||||
|
||||
try:
|
||||
import tinycudann as tcnn
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# Copyright 2022 The Plenoptix Team. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""A collection of common strings and print statements used throughout the codebase."""
|
||||
|
||||
from rich.console import Console
|
||||
|
||||
console = Console(width=120)
|
||||
|
||||
|
||||
def print_tcnn_speed_warning(method_name: str):
|
||||
"""Prints a warning about the speed of the TCNN."""
|
||||
console.line()
|
||||
console.print(f"[bold yellow]WARNING: Using a slow implementation of {method_name}. ")
|
||||
console.print(
|
||||
"[bold yellow]:person_running: :person_running: "
|
||||
+ "Install tcnn for speedups :person_running: :person_running:"
|
||||
)
|
||||
console.print("[yellow]pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch")
|
||||
console.line()
|
||||
File renamed without changes.
+1
-1
@@ -30,7 +30,7 @@ from nerfstudio.cameras.camera_paths import get_path_from_json, get_spiral_path
|
||||
from nerfstudio.cameras.cameras import Cameras
|
||||
from nerfstudio.configs import base_config as cfg
|
||||
from nerfstudio.pipelines.base import Pipeline
|
||||
from nerfstudio.utils.rich import ItersPerSecColumn
|
||||
from nerfstudio.utils.rich_utils import ItersPerSecColumn
|
||||
|
||||
console = Console(width=120)
|
||||
|
||||
|
||||
@@ -139,6 +139,38 @@ def test_tensor_sh_encoder():
|
||||
assert encoded.shape == (10, out_dim)
|
||||
|
||||
|
||||
def test_tensor_hash_encoder():
|
||||
"""Test Spherical Harmonic encoder"""
|
||||
|
||||
num_levels = 4
|
||||
features_per_level = 4
|
||||
out_dim = num_levels * features_per_level
|
||||
|
||||
encoder = encoding.HashEncoding(
|
||||
num_levels=num_levels,
|
||||
features_per_level=features_per_level,
|
||||
log2_hashmap_size=5,
|
||||
implementation="torch",
|
||||
)
|
||||
assert encoder.get_out_dim() == out_dim
|
||||
|
||||
in_tensor = torch.zeros((10, 3))
|
||||
in_tensor[..., 1] = 1
|
||||
encoded = encoder(in_tensor)
|
||||
assert encoded.shape == (10, out_dim)
|
||||
|
||||
encoder = encoding.HashEncoding(
|
||||
num_levels=num_levels,
|
||||
features_per_level=features_per_level,
|
||||
log2_hashmap_size=5,
|
||||
implementation="tcnn",
|
||||
)
|
||||
in_tensor = torch.zeros((10, 3))
|
||||
in_tensor[..., 1] = 1
|
||||
encoded = encoder(in_tensor)
|
||||
assert encoded.shape == (10, out_dim)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_scaling_and_offset()
|
||||
test_nerf_encoder()
|
||||
@@ -146,3 +178,4 @@ if __name__ == "__main__":
|
||||
test_tensor_vm_encoder()
|
||||
test_tensor_cp_encoder()
|
||||
test_tensor_sh_encoder()
|
||||
test_tensor_hash_encoder()
|
||||
Reference in new issue
Block a user