努力变强
xuanzebi / bert-ch-ner Goto Github PK
View Code? Open in Web Editor NEW基于BERT的中文命名实体识别
基于BERT的中文命名实体识别
one_hot_labels = tf.one_hot(labels, depth=num_labels, dtype=tf.float32)
per_example_loss = -tf.reduce_sum(one_hot_labels * log_probs, axis=-1)
loss = tf.reduce_sum(per_example_loss)
probabilities = tf.nn.softmax(logits, axis=-1)
log_prob是[batch_size, max_seq, label_num]维度, max_seq有pad,直接reduce_sum全部作为loss?
run_NER.py文件执行
训练后:
--task_name=NER --do_train=true --do_eval=false --do_predict=false --data_dir=C:\Users\xiezx\Desktop\临时\BERT-CH-NER-master\tmp\ --vocab_file=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\vocab.txt --bert_config_file=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\bert_config.json --init_checkpoint=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\bert_model.ckpt --max_seq_length=256 --train_batch_size=16 --learning_rate=2e-5 --num_train_epochs=3.0 --output_dir=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\output\
进行预测:
--task_name=NER --do_train=false --do_eval=false --do_predict=true --data_dir=C:\Users\xiezx\Desktop\临时\BERT-CH-NER-master\tmp\ --vocab_file=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\vocab.txt --bert_config_file=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\bert_config.json --init_checkpoint=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\bert_model.ckpt --max_seq_length=256 --train_batch_size=16 --learning_rate=2e-5 --num_train_epochs=3.0 --output_dir=C:\Users\xiezx\Desktop\souhu\data\chinese_L-12_H-768_A-12\output\
生成的文件test_prediction.txt内容貌似有问题吧???(前5行)
[CLS] [CLS] O [CLS] B-PER O [CLS] O O O I-LOC O O [CLS] I-ORG B-ORG I-ORG [CLS] [CLS] I-ORG [CLS] [CLS] B-PER [CLS] [CLS] I-LOC [CLS] I-ORG [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-LOC I-ORG [CLS] I-LOC I-LOC I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-LOC I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-LOC [CLS] [CLS] I-LOC I-LOC I-LOC [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-LOC I-LOC I-LOC [CLS] I-LOC [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-LOC [CLS] I-LOC I-LOC I-ORG I-ORG [CLS] [CLS]
I-LOC [CLS] I-PER O I-ORG B-PER B-PER O O I-ORG I-ORG I-ORG I-PER I-PER O I-LOC O O O O [CLS] O [CLS] O O O B-LOC I-LOC I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] I-ORG I-ORG I-LOC I-LOC I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-LOC I-LOC [CLS] I-LOC [CLS] I-LOC [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-LOC I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-LOC I-LOC [CLS] I-LOC I-LOC I-LOC I-LOC [CLS] [CLS] I-ORG [CLS] [CLS] I-ORG I-LOC I-ORG I-ORG I-ORG B-PER [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG B-PER [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] B-PER I-ORG I-LOC I-LOC I-LOC I-LOC I-LOC I-LOC I-LOC [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-LOC I-ORG I-LOC I-LOC I-LOC I-ORG [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] I-ORG I-ORG B-PER I-ORG I-ORG I-ORG I-LOC I-ORG I-LOC [CLS] [CLS] [CLS] I-LOC I-LOC I-LOC I-LOC I-LOC [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER B-PER [CLS] B-PER I-LOC B-PER [CLS] B-PER I-LOC I-LOC I-LOC I-LOC I-LOC [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG
[CLS] [CLS] [CLS] B-PER I-PER I-ORG O I-ORG B-ORG I-ORG [CLS] [CLS] O [CLS] O [CLS] [CLS] [CLS] [CLS] B-PER [CLS] [CLS] B-ORG [CLS] [CLS] B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG [CLS] [CLS]
[CLS] [CLS] I-LOC I-ORG I-ORG B-LOC [CLS] B-ORG [CLS] I-LOC B-LOC [CLS] [CLS] I-PER [CLS] [CLS] O I-ORG I-ORG B-ORG O O [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER B-PER [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] I-ORG B-PER I-ORG B-PER [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER B-PER B-PER [CLS] B-PER B-PER [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS]
I-LOC [CLS] B-PER B-PER [CLS] O O B-ORG [CLS] O O O O O B-ORG O [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] I-ORG B-PER [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER B-PER I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] B-PER I-ORG I-ORG I-ORG I-ORG I-ORG I-ORG [CLS] [CLS] I-ORG [CLS] I-ORG I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG I-ORG [CLS] I-ORG I-ORG [CLS] I-ORG [CLS] [CLS] I-ORG [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS] I-ORG B-PER [CLS] I-ORG [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] [CLS] I-ORG [CLS]
感觉作者的代码对我这个小白修改很有启发,特来道谢。
你好,我在按照原来的说明跑模型时,在模型保存时报错,是什么原因呢?应该怎么解决呢?谢谢!
具体如下:
Caused by op 'save/SaveV2', defined at:
File "run_NER_self.py", line 949, in
tf.app.run()
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 125, in run
_sys.exit(main(argv))
File "run_NER_self.py", line 818, in main
estimator.train(input_fn=train_input_fn, max_steps=num_train_steps)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/contrib/tpu/python/tpu/tpu_estimator.py", line 2394, in train
saving_listeners=saving_listeners
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 356, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1181, in _train_model
return self._train_model_default(input_fn, hooks, saving_listeners)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1215, in _train_model_default
saving_listeners)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 1406, in _train_with_estimator_spec
log_step_count_steps=self._config.log_step_count_steps) as mon_sess:
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 504, in MonitoredTrainingSession
stop_grace_period_secs=stop_grace_period_secs)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 921, in init
stop_grace_period_secs=stop_grace_period_secs)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 643, in init
self._sess = _RecoverableSession(self._coordinated_creator)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 1107, in init
_WrappedSession.init(self, self._create_session())
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 1112, in _create_session
return self._sess_creator.create_session()
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 800, in create_session
self.tf_sess = self._session_creator.create_session()
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 557, in create_session
self._scaffold.finalize()
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/monitored_session.py", line 215, in finalize
self._saver.build()
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1106, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 1143, in _build
build_save=build_save, build_restore=build_restore)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 778, in _build_internal
save_tensor = self._AddShardedSaveOps(filename_tensor, per_device)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 369, in _AddShardedSaveOps
return self._AddShardedSaveOpsForV2(filename_tensor, per_device)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 343, in _AddShardedSaveOpsForV2
sharded_saves.append(self._AddSaveOps(sharded_filename, saveables))
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 284, in _AddSaveOps
save = self.save_op(filename_tensor, saveables)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/training/saver.py", line 202, in save_op
tensors)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/ops/gen_io_ops.py", line 1690, in save_v2
shape_and_slices=shape_and_slices, tensors=tensors, name=name)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 787, in _apply_op_helper
op_def=op_def)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py", line 488, in new_func
return func(*args, **kwargs)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 3272, in create_op
op_def=op_def)
File "/home/wonders/.local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1768, in init
self._traceback = tf_stack.extract_stack()
ResourceExhaustedError (see above for traceback): output/model.ckpt-1000_temp_ed8fcc6441604ae3a7ee161177b6171e/part-00000-of-00001.data-00000-of-00001.tempstate14792103910954023694; No space left on device
[[{{node save/SaveV2}} = SaveV2[dtypes=[DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, ..., DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT, DT_FLOAT], _device="/job:localhost/replica:0/task:0/device:CPU:0"](save/ShardedFilename, save/SaveV2/tensor_names,
Person 原来是 B-PER 分词后是 Per ##son 那么他的tag应该是什么
这个哪里有说明么
在输入【叩 问 澳 门 =- =- =- 贺 澳 门 回 归 进 入 倒 计 时】这个数据的时候报错,你这边说的手动处理是直接删除吗?
有的话,发我邮箱[email protected],谢谢。
你好,请问你是用什么标注工具标注的bio呢
老哥,你的电脑配置是多少?我不管用win还是ubuntu跑你的代码(run_NER.py)、卡死以后就报错了。!16G的内存
这里可以 在计算loss的时候将padding部分mask掉。
不过当时写的时候因为padding部分idx 为 0,所以在计算loss的时候影响不太大,就没考虑mask.
@xuanzebi 您好,
为什么padding部分的label id=0,在计算loss的时候影响不大?这时one-hot标签向量第0维是1吧
Originally posted by @zdgithub in #6 (comment)
在输出完实验结果后,打印的label显示50 36 少了14个label
报错是 assert_len(label_id) == max_seq_length
请问如何解决谢谢。
tensorflow.python.framework.errors_impl.InvalidArgumentError: 2 root error(s) found.
(0) Invalid argument: Shapes of all inputs must match: values[0].shape = [512] != values[1].shape = [10]
[[node confusion_matrix_1/stack_1 (defined at /tensorflow-1.15.0/python3.6/tensorflow_core/python/framework/ops.py:1748) ]]
[[ConstantFoldingCtrl/confusion_matrix_2/assert_less/Assert/AssertGuard/Switch_0/_1364]]
(1) Invalid argument: Shapes of all inputs must match: values[0].shape = [512] != values[1].shape = [10]
[[node confusion_matrix_1/stack_1 (defined at /tensorflow-1.15.0/python3.6/tensorflow_core/python/framework/ops.py:1748) ]]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.