Git Product home page Git Product logo

ann-visualizer's Introduction

photo photo

ANN Visualizer

PyPI version Build Status Donate

A great visualization python library used to work with Keras. It uses python's graphviz library to create a presentable graph of the neural network you are building.

Version 2.0 is Out!

Version 2.0 of the ann_visualizer is now released! The community demanded a CNN visualizer, so we updated our module. You can check out an example of a CNN visualization below!

Happy visualizing!

Installation

From Github

  1. Download the ann_visualizer folder from the github repository.
  2. Place the ann_visualizer folder in the same directory as your main python script.

From pip

Use the following command:

pip3 install ann_visualizer

Make sure you have graphviz installed. Install it using:

sudo apt-get install graphviz && pip3 install graphviz

Usage

from ann_visualizer.visualize import ann_viz;
#Build your model here
ann_viz(model)

Documentation

ann_viz(model, view=True, filename="network.gv", title="MyNeural Network")

  • model - The Keras Sequential model
  • view - If True, it opens the graph preview after executed
  • filename - Where to save the graph. (.gv file format)
  • title - A title for the graph

Example ANN

import keras;
from keras.models import Sequential;
from keras.layers import Dense;

network = Sequential();
        #Hidden Layer#1
network.add(Dense(units=6,
                  activation='relu',
                  kernel_initializer='uniform',
                  input_dim=11));

        #Hidden Layer#2
network.add(Dense(units=6,
                  activation='relu',
                  kernel_initializer='uniform'));

        #Exit Layer
network.add(Dense(units=1,
                  activation='sigmoid',
                  kernel_initializer='uniform'));

from ann_visualizer.visualize import ann_viz;

ann_viz(network, title="");

This will output: photo

Example CNN

import keras;
from keras.models import Sequential;
from keras.layers import Dense;
from ann_visualizer.visualize import ann_viz
model = build_cnn_model()
ann_viz(model, title="")

def build_cnn_model():
  model = keras.models.Sequential()

  model.add(
      Conv2D(
          32, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          32, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          64, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          64, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Dropout(0.2))

  model.add(Flatten())
  model.add(Dense(512, activation="relu"))
  model.add(Dropout(0.2))

  model.add(Dense(10, activation="softmax"))

  return model

This will output: photo

Contributions

This library is still unstable. Please report all bug to the issues section. It is currently tested with python3.5 and python3.6, but it should run just fine on any python3.

ann-visualizer's People

Contributors

redaops 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  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  avatar  avatar  avatar  avatar

Watchers

 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

ann-visualizer's Issues

Symmetry

Is there any reason why the diagrams are not symmetrical? This example for instance https://camo.githubusercontent.com/8b516c514b62b557713d42afb02d4b7aa3e8a8ed/68747470733a2f2f692e696d6775722e636f6d2f7633517041436c2e706e67

the red and blue nodes are not lined up with each other, even though there are 10 of each, so the "Dropout layer" oval is to the left of the "Flattening" triangle.

Or in this example, the Activation layer boxes don't line up with each other:

https://user-images.githubusercontent.com/32748771/38524223-9266e5f4-3c56-11e8-8532-53cd866cd88b.png

Or this:

2018-08-25 11_08_20-network gv pdf - sumatrapdf

error on google collaboration (colab.research.google.com)

hi
i run test_ann.py on google collaboration but i got this error FileNotFoundError: [Errno 2] No such file or directory: 'xdg-open': 'xdg-open'.

`FileNotFoundError Traceback (most recent call last)
in ()
22 from ann_visualizer.visualize import ann_viz;
23
---> 24 ann_viz(network, title="");

/usr/local/lib/python3.6/dist-packages/ann_visualizer/visualize.py in ann_viz(model, view, filename, title)
204 g.edge_attr.update(arrowhead="none", color="#707070");
205 if view == True:
--> 206 g.view();

/usr/local/lib/python3.6/dist-packages/graphviz/files.py in view(self, filename, directory, cleanup)
201 """
202 return self.render(filename=filename, directory=directory, view=True,
--> 203 cleanup=cleanup)
204
205 def _view(self, filepath, format):

/usr/local/lib/python3.6/dist-packages/graphviz/files.py in render(self, filename, directory, view, cleanup)
180
181 if view:
--> 182 self._view(rendered, self._format)
183
184 return rendered

/usr/local/lib/python3.6/dist-packages/graphviz/files.py in _view(self, filepath, format)
216 raise RuntimeError('%r has no built-in viewer support for %r '
217 'on %r platform' % (self.class, format, backend.PLATFORM))
--> 218 view_method(filepath)
219
220 _view_darwin = staticmethod(backend.view.darwin)

/usr/local/lib/python3.6/dist-packages/graphviz/backend.py in view_unixoid(filepath)
226 def view_unixoid(filepath):
227 """Open filepath in the user's preferred application (linux, freebsd)."""
--> 228 subprocess.Popen(['xdg-open', filepath])
229
230

/usr/lib/python3.6/subprocess.py in init(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
707 c2pread, c2pwrite,
708 errread, errwrite,
--> 709 restore_signals, start_new_session)
710 except:
711 # Cleanup if the child failed starting.

/usr/lib/python3.6/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
1342 if errno_num == errno.ENOENT:
1343 err_msg += ': ' + repr(err_filename)
-> 1344 raise child_exception_type(errno_num, err_msg, err_filename)
1345 raise child_exception_type(err_msg)
1346

FileNotFoundError: [Errno 2] No such file or directory: 'xdg-open': 'xdg-open'`

Support for CNN/RNN models

The project is great and it works for DNN models. But if we try to visualize the CNN/RNN models, it throws errors and draw the misleading images.

It would be great to support CNN/RNN as well. And here is the example code of Keras to test.

from ann_visualizer.visualize import ann_viz
model = build_cnn_model()
ann_viz(model, title="")

def build_cnn_model():
  model = keras.models.Sequential()

  model.add(
      Conv2D(
          32, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          32, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          64, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(Dropout(0.2))

  model.add(
      Conv2D(
          64, (3, 3),
          padding="same",
          input_shape=(32, 32, 3),
          activation="relu"))
  model.add(MaxPooling2D(pool_size=(2, 2)))
  model.add(Dropout(0.2))

  model.add(Flatten())
  model.add(Dense(512, activation="relu"))
  model.add(Dropout(0.2))

  model.add(Dense(10, activation="softmax"))

  return model

Bias

Can you show bias nodes?

bias_node_in_net 1

main-qimg-bf5a21006f36c6653a586b06da1a04f2

a-schematic-diagram-of-artificial-neural-network-and-architecture-of-the-feed-forward_w640 1

Support for tf.keras

Is it possible to add support for models created with tf.keras instead of keras?

Otherwise, do you know of a similar tool with such support?

Thanks

Typo in visualize.py line #32

def ann_viz(model, view=True, filename="network.gv", title="My Neural Network"):
    ...
    from keras import Sequential; <-- Should be keras.models import Sequential
    ...

Raises ImportError: cannot import name 'Sequential'

Error for CONV1D: Layer not supported for visualizing

I'm getting the error for CNN 1 Dimension, below is the model I have created :
model = Sequential()
model.add(Conv1D(31, 31, padding='same', input_shape=(992, 2))) # ignore -1
model.add(BatchNormalization())
model.add(LeakyReLU())
model.add(MaxPooling1D(1,1, padding='same'))

    model.add(Conv1D(992, 5, padding='same'))
    model.add(BatchNormalization())
    model.add(LeakyReLU())
    model.add(MaxPooling1D(1,1, padding='same'))

    model.add(Flatten())
    model.add(Dense(1984))
    model.add(BatchNormalization())
    model.add(Activation("tanh"))
    model.add(Dropout(0.5))

    model.add(Dense(len(CATEGORIES)))
    model.add(BatchNormalization())
    model.add(Activation("softmax"))

crashes with functional model

When functional model is used, the api does not recognize input layer.
ere is code
`import keras;
from keras.layers import Input, Dense
from keras.models import Model

#This returns a tensor
inputs = Input(shape=(784,))
#a layer instance is callable on a tensor, and returns a tensor
l1 = Dense(units=800,kernel_initializer=keras.initializers.Ones(), activation='relu')(inputs)
l2 = Dense(units=800,kernel_initializer=keras.initializers.Ones(), activation='relu')(l1)
lo = Dense(10, activation='softmax')(l2)

#This creates a model that includes
#the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=lo)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])

from ann_visualizer.visualize import ann_viz;

ann_viz(model, title="");`

keras.layers.Input layer not supported

The following code

from keras.layers import (
    Input,
    Dense,
)
from keras.models import Model

from ann_visualizer.visualize import ann_viz

layer_in = Input(shape=(10, ))
layer_out = Dense(2, activation="linear")(layer_in)

model = Model(inputs=layer_in, outputs=layer_out)

ann_viz(model)

will raise the following exception:

ValueError: ANN Visualizer: Layer not supported for visualizing

in ann_visualizer/visualize.py, line 123 under python3.6. Packages used

  • ann-visualizer==2.5
  • Keras==2.3.1

Installing ann_visualizer in anaconda using conda install ann_visualizer

Can ann_visualizer be installed using anaconda?
I've been working on Spyder-ide and it is an ide pre-installed along with installation of anaconda.

Can you please add conda install ann_visualizer for anaconda users please? As tensorflow installed using pip is slower compared to conda install tensorflow. And keras uses tensorflow as backend. And it is preferred to use conda over pip

Would be a great to include ann_visualizer installation using conda

Can ann viz plot more than 10 units in a layer?

Hi everyone,

ann viz works quite well the only problem I have is: Is there a way to plot larger nets than those with 10 units in a layer? I mean it says how much more it is gonna plot (+26) but is it possible to actually plot all those units? Is there a flag for that?

image

Tobias

Feature request: Draw activations

Thanks a lot for this great library! :)

Are there any plans to display activation functions? I haven't seen any in the example plots.

ValueError

File "D:\Anaconda\lib\site-packages\ann_visualizer\visualize.py", line 42, in ann_viz
input_layer = int(str(layer.input_shape).split(",")[1][1:-1]);
ValueError: invalid literal for int() with base 10: ''

Only print tow layers | even with example | No error

When I am using this code

network = Sequential();
#Hidden Layer#1
network.add(Dense(units=6,
activation='relu',
kernel_initializer='uniform',
input_dim=11));

network.add(Dense(units=1,
activation='sigmoid',
kernel_initializer='uniform'));

from ann_visualizer.visualize import ann_viz;
ann_viz(network, title="");

a

when all three layers then

network = Sequential();
#Hidden Layer#1
network.add(Dense(units=6,
activation='relu',
kernel_initializer='uniform',
input_dim=11));
network.add(Dense(units=3,
activation='relu',
kernel_initializer='uniform'));
network.add(Dense(units=1,
activation='sigmoid',
kernel_initializer='uniform'));
b

why ??

Can not able to plot Keras Model API

Keras Model API not supported with ValueError: ANN Visualizer: Layer not supported for visualizing
I think this arises due to Input layer
my code is

from keras.models import Model
from keras.layers import Input, Dense

a = Input(shape=(32,))
b = Dense(32)(a)
model = Model(inputs=a, outputs=b)
model.summary()

ann_viz(model, title="My first neural network")

ValueError: ANN Visualizer: Layer not supported for visualizing

Hello, I am trying to plot my model but it keeps throwing the exception
ValueError: ANN Visualizer: Layer not supported for visualizing

Here is my code:

from tensorflow import keras
from ann_visualizer.visualize import ann_viz

def add_layers_to_network(model, nodes, activation_func):
    if activation_func == 'relu':
        model.add(keras.layers.Dense(nodes, activation=tf.nn.relu))
    elif activation_func == 'sigmoid':
        model.add(keras.layers.Dense(nodes, activation=tf.nn.sigmoid))
    elif activation_func == 'tanh':
        model.add(keras.layers.Dense(nodes, activation=tf.nn.tanh))
    elif activation_func == 'elu':
        model.add(keras.layers.Dense(nodes, activation=tf.nn.elu))
    elif activation_func == 'softmax':
        model.add(keras.layers.Dense(nodes, activation=tf.nn.softmax))

def build_neural_network(nlayers, nodes, act_functions, output_act_func):
    model = keras.Sequential([
       keras.layers.Flatten(input_shape=(utils.width, utils.height))
 ])

# Construction of the hidden layers
for i in range(nlayers):
    add_layers_to_network(model, nodes[i], act_functions[i])

# Construction of the output layer
add_layers_to_network(model, len(utils.class_names), output_act_func)

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=epochs)

ann_viz(model, title="My first neural network")

Thanks in advance.

running example Error

Traceback (most recent call last):
File "anntest.py", line 21, in
ann_viz(network)
File "/home/masami/anaconda3/lib/python3.6/site-packages/ann_visualizer/visualize.py", line 88, in ann_viz
g.attr(splines="false", nodesep='1', ranksep='2');
TypeError: attr() missing 1 required positional argument: 'kw'

ANN Visualizer: Layer not supported for visualizing

I've tried tons of code to run this visualizer. I determined that this tool works only for 'Sequental' models. You should write this into info.

Details

  • Not working if layer sequence start with an 'input' tensor.
inp = Input((3,))
L1 = Dense(6)(inp)

THROWN► ^ ANN Visualizer: Layer not supported for visualizing

Hope you will improve this tool. Because this is beautiful and can't find any other tool to draw as neuron by neuron.

Issue with displaying: tensorflow.keras.layers

In Python 3.7.x we need to install tensorflow.keras.layers (Tensorflow compatibility is broken)

import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D, AveragePooling2D

# ==============================================================================

def CNN3(input_shape, output_shape):

    model = Sequential()

    # Layer #1: Convolutional Layer
    model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.2))
    model.add(Flatten())

    # Layer #2: Dense Layer
    model.add(Dense(128, activation='relu'))

    # Layer #3: Dense Layer
    model.add(Dense(output_shape, activation='softmax'))

    return model

This library does not currently support tensorflow.keras.layers

Could you kindly update this awesome vis library to support this?

Error in ann_viz: unexpected keyword argument 'name'

Hello there,

I am getting the following error, from running ann_viz(model), with even the most basic example.

TypeError: subgraph() got an unexpected keyword argument 'name'

It marks as being from the following code in the library:

~\AppData\Local\Continuum\anaconda3\envs\ml_fuji\lib\site-packages\ann_visualizer\visualize.py in ann_viz(model, view, filename, title)
     88         g.graph_attr.update(splines="false", nodesep='1', ranksep='2');
     89         #Input Layer
---> 90         with g.subgraph(name='cluster_input') as c:
     91             if(type(model.layers[0]) == keras.layers.core.Dense):
     92                 the_label = title+'\n\n\n\nInput Layer';

Any thoughts on why I am getting this?

Thank you.

Model Visualization giving error.

Hello,

Here is the code for which I am trying to use ANN Visualizer-

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, BatchNormalization

from ann_visualizer.visualize import ann_viz;

def get_cnn_model(input_shape, num_classes):
    model = Sequential()

    model.add(Conv2D(32, kernel_size=(2, 2), activation='relu', input_shape=input_shape))
    model.add(BatchNormalization())

    model.add(Conv2D(48, kernel_size=(2, 2), activation='relu'))
    model.add(BatchNormalization())

    model.add(Conv2D(120, kernel_size=(2, 2), activation='relu'))
    model.add(BatchNormalization())

    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))

    model.add(Flatten())

    model.add(Dense(128, activation='relu'))
    model.add(BatchNormalization())
    model.add(Dropout(0.25))
    model.add(Dense(64, activation='relu'))
    model.add(BatchNormalization())
    model.add(Dropout(0.4))
    model.add(Dense(num_classes, activation='softmax'))
    model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metrics=['accuracy'])

    ann_viz(model, title="Neural Network Model", filename='../images/model.gv')

    return model


if __name__ == '__main__':
model = get_cnn_model((20, 20, 1), 10)
print(model.summary())

However, when I run this code, I get the following error from ANN-Viz -

Traceback (most recent call last):
  File "/Users/adhishthite/PycharmProjects/soundMNIST/utils/model.py", line 39, in <module>
    model = get_cnn_model((20, 20, 1), 10)
  File "/Users/adhishthite/PycharmProjects/soundMNIST/utils/model.py", line 33, in get_cnn_model
    ann_viz(model, title="Neural Network Model", filename='../images/model.gv')
  File "/Users/adhishthite/anaconda/envs/tfdeeplearning/lib/python3.5/site-packages/ann_visualizer/visualize.py", line 126, in ann_viz
    if (layer_types[i] == "Dense"):
IndexError: list index out of range

Can you kindly fix this issue?

ValueError

Hi ! Thanks for this contribution :)

I'm trying to run ann-visualizer on keras-RetinaNet, but I get this error :

ValueError: invalid literal for int() with base 10: 'Non'

Any idea of how to solve it ?

runing ann-visualizer, Error

I want to visualizer about YOLO v2, but runing the ann-visualizer, Error.
enviorment: ubuntu 16.10, python3.6, tensorflow1.3.0, Keras2.0.5
Look forward to your reply!

python yolov2_Visualizer.py
Using TensorFlow backend.
Traceback (most recent call last):
File "/home/tianao/anaconda3/lib/python3.6/site-packages/graphviz/backend.py", line 124, in render
subprocess.check_call(args, startupinfo=STARTUPINFO, stderr=stderr)
File "/home/tianao/anaconda3/lib/python3.6/subprocess.py", line 286, in check_call
retcode = call(*popenargs, **kwargs)
File "/home/tianao/anaconda3/lib/python3.6/subprocess.py", line 267, in call
with Popen(*popenargs, **kwargs) as p:
File "/home/tianao/anaconda3/lib/python3.6/subprocess.py", line 707, in init
restore_signals, start_new_session)
File "/home/tianao/anaconda3/lib/python3.6/subprocess.py", line 1333, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'dot'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "yolov2_Visualizer.py", line 25, in
ann_viz(network, title=""); File "/home/tianao/anaconda3/lib/python3.6/site-packages/ann_visualizer/visualize.py", line 204, in ann_viz
g.view();
File "/home/tianao/anaconda3/lib/python3.6/site-packages/graphviz/files.py", line 203, in view
cleanup=cleanup)
File "/home/tianao/anaconda3/lib/python3.6/site-packages/graphviz/files.py", line 176, in render
rendered = backend.render(self._engine, self._format, filepath)
File "/home/tianao/anaconda3/lib/python3.6/site-packages/graphviz/backend.py", line 127, in render
raise ExecutableNotFound(args)
graphviz.backend.ExecutableNotFound: failed to execute ['dot', '-Tpdf', '-O', 'network.gv'], make sure the Graphviz executables are on your systems' PATH

ANN Visualizer: Layer not supported for visualizing

from keras.models import Sequential, Model
from keras.layers import Dense, Activation, Input
from ann_visualizer.visualize import ann_viz


suboutputs = []

for i in range(30):
    model = Sequential([
        Dense(80, input_shape=(4,)),
        Activation('sigmoid'),
        Dense(60, input_shape=(80,)),
        Activation('sigmoid'),
        Dense(1, input_shape=(60,)),
    ])

    x = Input(shape=(1,), tensor=model.layers[-1].output)
    suboutputs.append(x)

y = Dense(1)(suboutputs[0])

mm = Model(inputs=suboutputs, outputs=y)

ann_viz(mm, title="net")

Here is my code

Results:

Traceback (most recent call last):
  File "/home/xxx/keras_plot.py", line 30, in <module>
    ann_viz(mm, title="net")
  File "/home/xxx/.anaconda3/lib/python3.6/site-packages/ann_visualizer/visualize.py", line 117, in ann_viz
    raise ValueError("ANN Visualizer: Layer not supported for visualizing");
ValueError: ANN Visualizer: Layer not supported for visualizing

Can't show the complete neural network

Hi Thanks for the contribution!

I have a small problem. I want to create a network with the input shape as 11. But the network I created by ant-visualizer cut one input off, only shows 10. I used the exact code as in the example. Please let me know how to fix this. Thanks!
network.gv.pdf

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.