Comments (13)
Thanks for your issue. Could you upload more detailed information, such as your config files?
from mmrazor.
_base_ = [
'./imagenet_bs256_autoslim.py',
'./imagenet_bs2048_autoslim.py',
'./mmcls_runtime.py'
]
model = dict(
type='mmcls.ImageClassifier',
backbone=dict(type='MobileNetV2', widen_factor=1.5),
neck=dict(type='GlobalAveragePooling'),
head=dict(
type='LinearClsHead',
num_classes=2,
in_channels=1920,
loss=dict(
type='LabelSmoothLoss',
mode='original',
label_smooth_val=0.1,
loss_weight=1.0),
topk=(1,),
))
algorithm = dict(
type='AutoSlim',
architecture=dict(type='MMClsArchitecture', model=model),
distiller=dict(
type='SelfDistiller',
components=[
dict(
student_module='head.fc',
teacher_module='head.fc',
losses=[
dict(
type='KLDivergence',
name='loss_kd',
tau=1,
loss_weight=1,
)
]),
]),
pruner=dict(
type='RatioPruner',
ratios=(2 / 12, 3 / 12, 4 / 12, 5 / 12, 6 / 12, 7 / 12, 8 / 12, 9 / 12,
10 / 12, 11 / 12, 1.0)),
retraining=False,
bn_training_mode=True,
input_shape=None)
runner = dict(type='EpochBasedRunner', max_epochs=50)
use_ddp_wrapper = True
from mmrazor.
Is there an error when running the following code?
from mmcv import ConfigDict
from mmrazor.models import build_algorithm
model_cfg = dict(
type='mmcls.ImageClassifier',
backbone=dict(type='MobileNetV2', widen_factor=1.5),
neck=dict(type='GlobalAveragePooling'),
head=dict(
type='LinearClsHead',
num_classes=2,
in_channels=1920,
loss=dict(
type='LabelSmoothLoss',
mode='original',
label_smooth_val=0.1,
loss_weight=1.0),
topk=(1,),
))
algorithm_cfg = ConfigDict(
type='AutoSlim',
architecture=dict(type='MMClsArchitecture', model=model_cfg),
distiller=dict(
type='SelfDistiller',
components=[
dict(
student_module='head.fc',
teacher_module='head.fc',
losses=[
dict(
type='KLDivergence',
name='loss_kd',
tau=1,
loss_weight=1,
)
]),
]),
pruner=dict(
type='RatioPruner',
ratios=(2 / 12, 3 / 12, 4 / 12, 5 / 12, 6 / 12, 7 / 12, 8 / 12, 9 / 12,
10 / 12, 11 / 12, 1.0)),
retraining=False,
bn_training_mode=True,
input_shape=None)
algorithm = build_algorithm(algorithm_cfg)
from mmrazor.
yes, it appeared the same error
Python 3.8.12 (default, Oct 12 2021, 13:49:34)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from mmcv import ConfigDict
>>> from mmrazor.models import build_algorithm
>>> model_cfg = dict(
... type='mmcls.ImageClassifier',
... backbone=dict(type='MobileNetV2', widen_factor=1.5),
... neck=dict(type='GlobalAveragePooling'),
... head=dict(
... type='LinearClsHead',
... num_classes=2,
... in_channels=1920,
... loss=dict(
... type='LabelSmoothLoss',
... mode='original',
... label_smooth_val=0.1,
... loss_weight=1.0),
... topk=(1,),
... ))
>>> algorithm_cfg = ConfigDict(
... type='AutoSlim',
... architecture=dict(type='MMClsArchitecture', model=model_cfg),
... distiller=dict(
... type='SelfDistiller',
... components=[
... dict(
... student_module='head.fc',
... teacher_module='head.fc',
... losses=[
... dict(
... type='KLDivergence',
... name='loss_kd',
... tau=1,
... loss_weight=1,
... )
... ]),
... ]),
... pruner=dict(
... type='RatioPruner',
... ratios=(2 / 12, 3 / 12, 4 / 12, 5 / 12, 6 / 12, 7 / 12, 8 / 12, 9 / 12,
... 10 / 12, 11 / 12, 1.0)),
... retraining=False,
... bn_training_mode=True,
... input_shape=None)
>>> algorithm = build_algorithm(algorithm_cfg)
Traceback (most recent call last):
File "/home/ubuntu/miniconda/envs/mmseg/lib/python3.8/site-packages/mmcv/utils/registry.py", line 52, in build_from_cfg
return obj_cls(**args)
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/algorithms/autoslim.py", line 42, in __init__
super(AutoSlim, self).__init__(**kwargs)
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/algorithms/base.py", line 57, in __init__
self._init_pruner(pruner)
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/algorithms/autoslim.py", line 69, in _init_pruner
pseudo_pruner.prepare_from_supernet(pseudo_architecture)
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 120, in prepare_from_supernet
self.trace_non_pass_path(pseudo_loss.grad_fn, module2name, var2module,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 558, in trace_non_pass_path
parser(self, grad_fn, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 700, in linear_backward_parser
self.trace_non_pass_path(parent, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
[Previous line repeated 2 more times]
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 558, in trace_non_pass_path
parser(self, grad_fn, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 663, in conv_backward_parser
self.trace_non_pass_path(parent, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 558, in trace_non_pass_path
parser(self, grad_fn, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 663, in conv_backward_parser
self.trace_non_pass_path(parent, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 565, in trace_non_pass_path
self.trace_non_pass_path(parent, module2name,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 558, in trace_non_pass_path
parser(self, grad_fn, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 731, in concat_backward_parser
self.trace_non_pass_path(parent, module2name, var2module,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 558, in trace_non_pass_path
parser(self, grad_fn, module2name, var2module, cur_path,
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/pruners/structure_pruning.py", line 653, in conv_backward_parser
variable = grad_fn.next_functions[1][0].variable
AttributeError: 'SliceBackward' object has no attribute 'variable'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ubuntu/project/hzw/mmrazor-master/mmrazor/models/builder.py", line 20, in build_algorithm
return ALGORITHMS.build(cfg)
File "/home/ubuntu/miniconda/envs/mmseg/lib/python3.8/site-packages/mmcv/utils/registry.py", line 212, in build
return self.build_func(*args, **kwargs, registry=self)
File "/home/ubuntu/miniconda/envs/mmseg/lib/python3.8/site-packages/mmcv/cnn/builder.py", line 27, in build_model_from_cfg
return build_from_cfg(cfg, registry, default_args)
File "/home/ubuntu/miniconda/envs/mmseg/lib/python3.8/site-packages/mmcv/utils/registry.py", line 55, in build_from_cfg
raise type(e)(f'{obj_cls.__name__}: {e}')
AttributeError: AutoSlim: 'SliceBackward' object has no attribute 'variable'
from mmrazor.
I can run the above code normally on both cpu and cuda. And the information of the running environments is as follows:
Environment info:
------------------------------------------------------------
sys.platform: linux
Python: 3.8.12 (default, Oct 12 2021, 13:49:34) [GCC 7.5.0]
CUDA available: True
GPU 0: Tesla PG503-216
CUDA_HOME: /mnt/lustre/share//cuda-10.1
NVCC: Cuda compilation tools, release 10.1, V10.1.168
GCC: gcc (GCC) 5.4.0
PyTorch: 1.9.1+cu102
PyTorch compiling details: PyTorch built with:
- GCC 7.3
- C++ Version: 201402
- Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
- Intel(R) MKL-DNN v2.1.2 (Git Hash 98be7e8afa711dc9b66c8ff3504129cb82013cdb)
- OpenMP 201511 (a.k.a. OpenMP 4.5)
- NNPACK is enabled
- CPU capability usage: AVX2
- CUDA Runtime 10.2
- NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70
- CuDNN 7.6.5
- Magma 2.5.2
- Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.2, CUDNN_VERSION=7.6.5, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.9.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
TorchVision: 0.10.1+cu102
OpenCV: 4.5.3
MMCV: 1.3.18
MMCV Compiler: GCC 5.4
MMCV CUDA Compiler: 10.1
MMClassification: 0.16.0+
------------------------------------------------------------
Could you provide your pytorch version? And make sure that the codes in MMRazor and MMClassification are not modified.
from mmrazor.
And pls check there are no slice operations in MobileNetV2
, mmcls
.
from mmrazor.
这是我的环境信息,代码没有其他改动,直接按照默认配置跑的
2022-01-07 10:13:59,491 - mmcls - INFO - Environment info:
------------------------------------------------------------
sys.platform: linux
Python: 3.8.12 (default, Oct 12 2021, 13:49:34) [GCC 7.5.0]
CUDA available: True
GPU 0: Tesla V100-SXM2-32GB
CUDA_HOME: /usr/local/cuda-11.1
NVCC: Build cuda_11.1.TC455_06.29069683_0
GCC: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
PyTorch: 1.8.1
PyTorch compiling details: PyTorch built with:
- GCC 7.3
- C++ Version: 201402
- Intel(R) oneAPI Math Kernel Library Version 2021.3-Product Build 20210617 for Intel(R) 64 architecture applications
- Intel(R) MKL-DNN v1.7.0 (Git Hash 7aed236906b1f7a05c0917e5257a1af05e9ff683)
- OpenMP 201511 (a.k.a. OpenMP 4.5)
- NNPACK is enabled
- CPU capability usage: AVX2
- CUDA Runtime 10.1
- NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
- CuDNN 7.6.3
- Magma 2.5.2
- Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.1, CUDNN_VERSION=7.6.3, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.8.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
TorchVision: 0.9.1
OpenCV: 4.5.1
MMCV: 1.4.2
MMCV Compiler: GCC 9.3
MMCV CUDA Compiler: 11.1
MMClassification: 0.19.0+
from mmrazor.
我和我的同事反复验证了好多次,依旧复现不了您的bug,很抱歉
from mmrazor.
这个问题现在解决了,是我torch的cuda版本和mmcv的cuda版本不匹配导致的。
现在还有个问题想问一下,官方在复现autoslim算法的时候,mobilenetv2是否有加载预训练呢,因为我发现默认配置只用了50的epoch来训练supernet,和autoslim官方的300差的蛮多的。
还有就是可以提供一份step1训练mobilenetv2的log么,感谢回复
from mmrazor.
Using English is more appreciated for better community discussion around the world.
The total training epochs of supernet pretain is 50. You can find "For all network architectures we train 50 epochs with squeezed learning rate schedule to obtain a slimmable model for greedy slimming" in the experiments part of "AutoSlim: Towards One-Shot Architecture Search for Channel Numbers".
The log of step 1 will be released in the next version soon.
from mmrazor.
这个问题现在解决了,是我torch的cuda版本和mmcv的cuda版本不匹配导致的。 现在还有个问题想问一下,官方在复现autoslim算法的时候,mobilenetv2是否有加载预训练呢,因为我发现默认配置只用了50的epoch来训练supernet,和autoslim官方的300差的蛮多的。 还有就是可以提供一份step1训练mobilenetv2的log么,感谢回复
我遇到跟你类似的问题,你的pytorch的CUDA版本和MMCV的CUDA版本不匹配是在哪里看出来的呢?
我的环境是这样的:
sys.platform: linux
Python: 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
CUDA available: True
GPU 0,1,2,3: GeForce RTX 2080 Ti
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 10.1, V10.1.243
GCC: gcc (GCC) 5.4.0
PyTorch: 1.8.1+cu101
PyTorch compiling details: PyTorch built with:
- GCC 7.3
- C++ Version: 201402
- Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
- Intel(R) MKL-DNN v1.7.0 (Git Hash 7aed236906b1f7a05c0917e5257a1af05e9ff683)
- OpenMP 201511 (a.k.a. OpenMP 4.5)
- NNPACK is enabled
- CPU capability usage: AVX2
- CUDA Runtime 10.1
- NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70
- CuDNN 7.6.3
- Magma 2.5.2
- Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=10.1, CUDNN_VERSION=7.6.3, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.8.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
TorchVision: 0.9.1+cu101
OpenCV: 4.5.5
MMCV: 1.4.2
MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 10.1
MMClassification: 0.19.0+e4e9513
from mmrazor.
Hi, tanghy2016. Could you please try downgrade pytorch version to 1.8.0 and have a look again?
from mmrazor.
Hi, tanghy2016. Could you please try downgrade pytorch version to 1.8.0 and have a look again?
非常感谢, 已经可以正常运行了
from mmrazor.
Related Issues (20)
- I can't reproduce dfad results
- How to get started??
- [Bug] TypeError: 'NoneType' object is not iterable
- Try to reproduce CWD in VOC data set
- [Bug] (suggested temporary fix) Pytorch >= 2 causes mmrazor.engine to fail HOT 4
- [Bug] (suggested fix) `nn.Parameter` are not added to root after being traced in `mmrazor.models.task_utils.tracer.fx.custom_tracer.build_graphmodule()` HOT 2
- [Bug] (suggested fix) `mmrazor.models.algorithms.quantization.mm_architecture.MMArchitectureQuant.sync_qparams()` fails if there are modules present in other modes but not in forward `mode='tensor'` HOT 4
- I want to obtain the current epoch value and associate it with the custom distillation loss
- cannot use recorder to obtain panoptic_head info from mask2former
- [Bug] `mmrazor.engine.runner.quantization_loops.QATValLoop` calls `after_val_epoch` hook twice with different keys, causing `mmengine.hooks.checkpoint_hook._save_best_checkpoint()` to fail with `KeyError` for the `save_best` config
- [Bug] Custom Distillation MMSeg CWD loss nan problem
- When I use methodoutputs to access the results of assigner, I only obtain one sample
- Regarding tables and accuracy
- [Bug] (suggested fix) `mmrazor.models.algorithms.mm_architecture.MMArchitectureQuant.get_deploy_model()` fails if `predict` mode lacks nodes from the `model.quantizer.tracer.skipped_methods` configuration, but the architecture `quantizer.prepare(fp32_model)` has these nodes. HOT 4
- Is this a dead project ? HOT 1
- 我在用mmrazor通过yolov5-x蒸馏yolov5-s时候遇到了问题 HOT 1
- No Sign of activation quantization with QAT HOT 1
- MAP is stucked at 0 for Mobilenet V2 SSD QAT without pretrained model [Bug]
- [Docs] A100算力加持!书生大模型实战营第3期全面升级,趣味闯关模式等你开启
- Missing keys after RTMDET knowledge distillation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mmrazor.