Giter Site home page Giter Site logo

cp2kdata's People

Contributors

link89 avatar njzjz avatar robinzyb avatar ruihao69 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cp2kdata's Issues

The AIMD data parsed for DeePMD is untrainable

Dear developers,

I parsed my AIMD data with cp2kdata 0.6.4. and found that DeePMD-kit is struggle to train a model with low RMSEs with these data.
Previously, I used the built-in dpdata functions (kind of old dpdata-native version of parser) to parse this AIMD run and no problems were found: training was succesful. The DeePMD .json training parameters were completely the same.
Is something wrong with my cp2kdata parsing script? Looks like the data is completely untrainable. In figure, there are RMSE in energies for the cases of native dpdata parser and cp2kdata parser. Forces and virials show large RMSEs as well. I have a weak guess that there could be dimension mismatch (for example, forces are treated as eV/Angstrom instead of Hartree/Bohr or vice versa).
The CP2K version I used is 6.1. However, I can confirm that for the latest CP2K 2023.2 the problem is remaining.

Sincerely yours,
Dmitry

The file attached is the log of parsing with cp2kdata
There is the data gained from both dpdata and cp2kdata: https://drive.google.com/file/d/1I9B38WK-17srTUyVa5OtI5wFtIo64exb/view?usp=sharing
There is the archive with raw AIMD data I used: https://drive.google.com/file/d/1Rx6tiBuxLDMuJq8epHW-AKQhFKTNvDHZ/view?usp=sharing

dpdata Python script:

import dpdata
import numpy as np

cp2kdata = dpdata.LabeledSystem("1350", fmt="cp2k/aimd_output")
print("# the data contains %d frames" % len(cp2kdata))
index_validation = np.random.choice(len(cp2kdata), size=1500, replace=False)

index_training = list(set(range(len(cp2kdata))) - set(index_validation))
data_training = cp2kdata.sub_system(index_training)
data_validation = cp2kdata.sub_system(index_validation)

data_training.to_deepmd_npy("1350_train")
data_validation.to_deepmd_npy("1350_test")

cp2kdata Python script:

import dpdata
import numpy as np

cp2kmd_dir = "1350"
cp2kmd_output_name = "LiCl_KCl_1350.log"
cp2kdata = dpdata.LabeledSystem(cp2kmd_dir, cp2k_output_name=cp2kmd_output_name, fmt="cp2kdata/md")
print(cp2kdata)

index_validation = np.random.choice(len(cp2kdata), size=1500, replace=False)
index_training = list(set(range(len(cp2kdata))) - set(index_validation))
data_training = cp2kdata.sub_system(index_training)
data_validation = cp2kdata.sub_system(index_validation)

data_training.to_deepmd_npy("1350_train_cp2kdata")
data_validation.to_deepmd_npy("1350_test_cp2kdata")

egood

log_cp2kdata.txt

not work for systems with over 100 atoms

if we parse the atomic kind of systems with over 100 atoms, the len of atomic_kind will be 99 while the len of atomic_kind_list will be larger than 99.
in output.py
def get_chemical_symbols_fake(self): if (self.atom_kind_list is not None) and (self.atomic_kind is not None): return self.atomic_kind[self.atom_kind_list-1]
there will be an error
'index 99 is out of bounds for axis 0 with size 99'

This is because the output file in cp2k unable to display the number over 99, for example,

  1. Atomic kind: O99 Number of atoms: 1
  2. Atomic kind: O99 Number of atoms: 1
    **. Atomic kind: O100 Number of atoms: 1

version of cp2k 7.1
version of cp2kdata 0.6.9

Shape might not be the same when using cp2kdata plugin for dpdata

When parsing unfinished or manually touch EXIT AIMD tasks, it might run into the following issue causing failure in reading.
It happens when the length of frames, energies, forces, or virials are not the same, while the expected solution, in my own opinion, is to just drop the last ones and throw out a warning about the dropping, for in detail check.

Traceback (most recent call last):
  File "/public/home/ypliucat/.conda/envs/local/bin/ai2-kit", line 8, in <module>
    sys.exit(main())
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/ai2_kit/main.py", line 123, in main
    Fire(ai2_kit)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/ai2_kit/tool/dpdata.py", line 57, in read
    self._read(file, **kwargs)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/ai2_kit/tool/dpdata.py", line 120, in _read
    system = dpdata.LabeledSystem(data_path, **kwargs)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/dpdata/system.py", line 183, in __init__
    self.from_fmt(
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/dpdata/system.py", line 220, in from_fmt
    return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/dpdata/system.py", line 1113, in from_fmt_obj
    data = fmtobj.from_labeled_system(file_name, **kwargs)
  File "/public/home/ypliucat/.conda/envs/local/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 133, in from_labeled_system
    data['virials'] = cp2kmd.stress_tensor_list*volumes/EV_ANG_m3_TO_GPa
ValueError: operands could not be broadcast together with shapes (90,3,3) (89,1,1)

A case for testing is provided. example.tgz

Error in converting cp2k v2023.1 MD trajectory

Hi,

I am trying to convert AIMD trajectory with cp2kdata to get datasets for deepmd. my cp2k version is 2023.1 and cp2kdata version is 0.4.1. I have put my .out, .ener,frc.xyz and pos.xyz into same dictionary but still get err:

--- You are parsing data using package Cp2kData ---
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 281, in __init__
    self.from_fmt(
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 318, in from_fmt
    return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1162, in from_fmt_obj
    data = fmtobj.from_labeled_system(file_name, **kwargs)
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 71, in from_labeled_system
    cp2kmd = Cp2kOutput(output_file=cp2k_output_name, run_type="MD", path_prefix=path_prefix)
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 83, in __init__
    self.Cp2kInfo = parse_cp2k_info(self.filename)
  File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/block_parser/header_info.py", line 24, in parse_cp2k_info
    return Cp2kInfo(version=cp2k_info["version"][0][0][0])
IndexError: list index out of range

Here is the command I used:

import dpdata
from dpdata import System, LabeledSystem, MultiSystems
data=LabeledSystem('./xyz_3/', cp2k_output_name='cp2k.log', fmt="cp2kdata/md")

For now I have not figure out the reason. Hope you can help me. thanks!

cp2k version 9.1

Hi yongbin,

I was recently using dpdata to process cp2k data and found that I was getting results with missing atoms. Finally I found that cp2k version 9.1 is partially incompatible. Can you leave your email and I will send you the output file?

Questions in converting cp2k data

Hello

I have issues in converting cp2k data into deepmd format.

My initial AIMD trajectory format is .dcd. Then I converted it into .xyz with VMD program. I tried to convert dp format. but it failed. The command I used is:
import dpdata
dir = "."
output = "pos."
dp = dpdata.LabelSystem (dir, cp2k_output_name=output, fmt = cp2kdata/md)
Then it failed.
Obtian Energies From ./POSCAR-1.ener Obtian Structures From ./pos.xyz Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 281, in __init__ self.from_fmt( File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 318, in from_fmt return self.from_fmt_obj(load_format(fmt), file_name, **kwargs) File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1162, in from_fmt_obj data = fmtobj.from_labeled_system(file_name, **kwargs) File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 71, in from_labeled_system cp2kmd = Cp2kOutput(output_file=cp2k_output_name, run_type="MD", path_prefix=path_prefix) File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 100, in __init__ Parse_Run_Type[self.GlobalInfo.run_type]() File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 378, in parse_md self.atomic_frames_list, energies_list_from_pos, self.chemical_symbols = parse_pos_xyz(pos_xyz_file_list[0]) File "/home/polyucmp/anaconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/block_parser/md_xyz.py", line 26, in parse_pos_xyz energies_list.append(match["energy"]) TypeError: 'NoneType' object is not subscriptable
I cannot figure out what happened. Hope you can help me. Files are also attached.

dpdata.zip

Error in dpdata plugin

Hello:
I encountered the following error when I try to prepare training data from the CP2K MD calculation with the dpdata plugin. I have the following output files in my working directory: energy.out (main output file), qmworks-cp2k-1.ener, qmworks-cp2k-1.cell, qmworks-cp2k-frc-1.xyz, qmworks-cp2k-pos-1.xyz, qmworks-cp2k-1.stress

CP2K VERSION: 6.1

Can you please provide some suggestions to resolve this error.

import dpdata
cp2kmd_dir = "./test"
cp2kmd_output_name = "energy.out"
dp = dpdata.LabeledSystem(cp2kmd_dir, cp2k_output_name=cp2kmd_output_name, fmt="cp2kdata/md")
--- You are parsing data using package Cp2kData ---
Traceback (most recent call last):
File "", line 1, in
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 281, in init
self.from_fmt(
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 318, in from_fmt
return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1162, in from_fmt_obj
data = fmtobj.from_labeled_system(file_name, **kwargs)
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 71, in from_labeled_system
cp2kmd = Cp2kOutput(output_file=cp2k_output_name, run_type="MD", path_prefix=path_prefix)
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 100, in init
Parse_Run_Typeself.GlobalInfo.run_type
File "/afs/enea.it/por/user/irpannee/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 390, in parse_md
self.num_frames = len(self.energies_list)
AttributeError: 'Cp2kOutput' object has no attribute 'energies_list'. Did you mean: 'get_energies_list'?

A problem about reading cp2k data

When I was reading the file, an error occurred. I tried rerunning cp2k molecular dynamics, but the error still occurred. Can you help me check what the reason is?

--- You are parsing data using package Cp2kData ---
Parsing Energies from water-dp/water-300K-1.ener
Parsing Structures from water-dp/water-300K-pos-1.xyz
Parsing Froces from water-dp/water-300K-nvt.force-frc-1.xyz
Parsing Stress from the CP2K output/log file: water-dp/md.log
Parsing Cells Information from water-dp/md.log
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
Traceback (most recent call last):
  File "/home/xwj/materials/water/water-deepmd/water-dp.py", line 16, in <module>
    data = dpdata.LabeledSystem(cp2kmd_dir, cp2k_output_name=cp2kmd_output_name, fmt="cp2kdata/md")
  File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 183, in __init__
    self.from_fmt(
  File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 220, in from_fmt
    return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
  File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1120, in from_fmt_obj
    self.check_data()
  File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 207, in check_data
    dd.check(self)
  File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/data_type.py", line 112, in check
    raise DataError(
dpdata.data_type.DataError: Shape of coords is (5404, 687, 3), but expected (5405, 687, 3)

I've looked at other files and they contain 5404 data, but why does it show that it expects 5405 data.

The following is the inp file of cp2k.
water.zip

Below is the complete file, which I put on my Google Cloud Drive.
https://drive.google.com/file/d/1lc9H1od_g-j335F1BqCi-ysP7EjV0evg/view?usp=drive_link

Error identification of higher CP2K version

Regex in header_info.py
could not identify higher verison info for CP2K version of 7.1/9.1/2022.2.

It will report like that:

Traceback (most recent call last):
  File "~/miniconda3/lib/python3.9/site-packages/cp2kdata/output.py", line 84, in __init__
    self.DFTInfo = parse_dft_info(self.filename)
  File "~/miniconda3/lib/python3.9/site-packages/cp2kdata/block_parser/header_info.py", line 81, in parse_dft_info
    return DFTInfo(ks_type=dft_info["ks_type"][0][0][0], multiplicity=dft_info["multiplicity"][0][0][0])
IndexError: list index out of range

ask for help when using cp2kdata

When I use cp2k to run molecular dynamics, I set some parameters so that the output data is output every 30 frames, but md.log file seems to output data once every frame. Can you tell me how to use cp2kdata to read such data, or whether you can add such a function.

ask for help when using cp2kdata

I meet some questions, when I use cp2kdata, in my file ,there is no force,only energy. but the code cannot load it ,and remind it 'Cp2kOutput' object has no attribute 'energies_list', in the directoty, there are enter, two xyz files in it.
output.zip

cp2k version 9.1

I was recently using dpdata to process cp2k data and found that I was getting results with missing atoms. Finally I found that cp2k version 9.1 is partially incompatible. Can you leave your email and I will send you the output file?

Why is Python 3.7 No Longer Supported?

Hi!

I noticed that the current version of cp2kdata does not support Python 3.7, as indicated by the requires-python = ">=3.8" in the pyproject.toml file. Previous versions did support Python 3.7. Could you please clarify why support for Python 3.7 was dropped?

Thank you!

convert data from CP2K aimd output

When I was using the dpdata package to convert the output of cp2k aimd, some errors occurred. Hopefully someone can help me figure out what the problem is.

import dpdata
data = dpdata.LabeledSystem('./water-dp', cp2k_output_name = 'md.log', fmt="cp2kdata/md")
print(data)

The following is the error:
--- You are parsing data using package Cp2kData ---
Traceback (most recent call last):
File "/home/xwj/materials/water/water-deepmd/water-dp.py", line 10, in
data = dpdata.LabeledSystem('./{}-dp'.format(file_label), cp2k_output_name = 'md.log', fmt="cp2kdata/md")
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 183, in init
self.from_fmt(
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 220, in from_fmt
return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1113, in from_fmt_obj
data = fmtobj.from_labeled_system(file_name, **kwargs)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 73, in from_labeled_system
cp2kmd = Cp2kOutput(output_file=cp2k_output_name, run_type="MD", path_prefix=path_prefix)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 68, in init
self.dft_info = parse_dft_info(self.filename)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/block_parser/header_info.py", line 91, in parse_dft_info
return DFTInfo(ks_type=dft_info["ks_type"][0][0][0], multiplicity=dft_info["multiplicity"][0][0][0])
IndexError: list index out of range
(deepmd) xwj@ERNIC:~/materials/water/water-deepmd$ python water-dp.py
--- You are parsing data using package Cp2kData ---
Traceback (most recent call last):
File "/home/xwj/materials/water/water-deepmd/water-dp.py", line 10, in
data = dpdata.LabeledSystem('./{}-dp'.format(file_label), cp2k_output_name = 'md.log', fmt="cp2kdata/md")
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 183, in init
self.from_fmt(
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 220, in from_fmt
return self.from_fmt_obj(load_format(fmt), file_name, **kwargs)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/dpdata/system.py", line 1113, in from_fmt_obj
data = fmtobj.from_labeled_system(file_name, **kwargs)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/dpdata_plugin.py", line 73, in from_labeled_system
cp2kmd = Cp2kOutput(output_file=cp2k_output_name, run_type="MD", path_prefix=path_prefix)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/output.py", line 68, in init
self.dft_info = parse_dft_info(self.filename)
File "/home/xwj/miniconda3/envs/deepmd/lib/python3.10/site-packages/cp2kdata/block_parser/header_info.py", line 91, in parse_dft_info
return DFTInfo(ks_type=dft_info["ks_type"][0][0][0], multiplicity=dft_info["multiplicity"][0][0][0])
IndexError: list index out of range

I provided my .inp file, the other files are too big for me to upload:
water-dp.zip

override dpdata's builtin formats

Currently, as shown in dpdata/plugins/init.py, dpdata firstly loads built-in Formats and then loads external Formats. When we keep this behavior, it is possible to override the built-in Format with a compatible Format so users can use the original script without changing the code. DP-GEN doesn't need to change the code as well.

Too long log on screen when parsing huge amount of data.

As I am manually parsing hundreds of single point calculations, it might cause the log like following:

--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---
--- You are parsing data using package Cp2kData ---
Atom names are fake chemical symbols as you set in cp2k input.
--- You are parsing data using package Cp2kData ---

It is too long to do any other thing, so it might be a good idea to add a silent mode. And in my opinion, print is not an elegent way to print log in Python, while using logger.info() might be more popular.

So I just submit my concern as an issue.

Only 1 Frame Detected in AIMD Simulation with CP2K and cp2kdata

I am new to CP2K and DeepMD. I have been running AIMD simulations using CP2K and subsequently parsing the data with cp2kdata. However, I encountered an issue where only 1 frame is detected in the output, as shown in the attached screenshot.
image

Code Snippet
from cp2kdata import Cp2kOutput
cp2k_output_file = "cp2k.log"
cp2koutput = Cp2kOutput(output_file=cp2k_output_file, run_type="MD")

I have attached a screenshot of the issue for reference. If more information or files are needed, please let me know. Thank you for your assistance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.