Two hidden layers with different neoron numbers each layer in neural network diagram with tikz
I am trying with following code. I want to replace Hidden layer 2
with 9 nodes. And want to add text1, text2, and text3 like the following figure. And Finally, I want to replace Input #1 to Input #9
with Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses.
Please need help.
documentclass{article}
usepackage{tikz}
begin{document}
pagestyle{empty}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name / y in {1,...,9}{
node[input neuron, pin=left:Input #y] (I-name) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNode{13}
newcommandNod{9}
% Draw the hidden layer nodes
foreach N in {1,...,Nhidden} {
foreach y in {1,...,Node} {
path[yshift=1.80cm]
node[hidden neuron] (HN-y) at (N*layersep,-y cm) {};
}
node[annot,above of=HN-1, node distance=1cm] (hlN) {Hidden layer N};
}
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-6] (O) {};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,13}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,13}
foreach dest in {1,...,13}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,13}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
tikz-pgf diagrams tikz-node
add a comment |
I am trying with following code. I want to replace Hidden layer 2
with 9 nodes. And want to add text1, text2, and text3 like the following figure. And Finally, I want to replace Input #1 to Input #9
with Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses.
Please need help.
documentclass{article}
usepackage{tikz}
begin{document}
pagestyle{empty}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name / y in {1,...,9}{
node[input neuron, pin=left:Input #y] (I-name) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNode{13}
newcommandNod{9}
% Draw the hidden layer nodes
foreach N in {1,...,Nhidden} {
foreach y in {1,...,Node} {
path[yshift=1.80cm]
node[hidden neuron] (HN-y) at (N*layersep,-y cm) {};
}
node[annot,above of=HN-1, node distance=1cm] (hlN) {Hidden layer N};
}
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-6] (O) {};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,13}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,13}
foreach dest in {1,...,13}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,13}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
tikz-pgf diagrams tikz-node
add a comment |
I am trying with following code. I want to replace Hidden layer 2
with 9 nodes. And want to add text1, text2, and text3 like the following figure. And Finally, I want to replace Input #1 to Input #9
with Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses.
Please need help.
documentclass{article}
usepackage{tikz}
begin{document}
pagestyle{empty}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name / y in {1,...,9}{
node[input neuron, pin=left:Input #y] (I-name) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNode{13}
newcommandNod{9}
% Draw the hidden layer nodes
foreach N in {1,...,Nhidden} {
foreach y in {1,...,Node} {
path[yshift=1.80cm]
node[hidden neuron] (HN-y) at (N*layersep,-y cm) {};
}
node[annot,above of=HN-1, node distance=1cm] (hlN) {Hidden layer N};
}
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-6] (O) {};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,13}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,13}
foreach dest in {1,...,13}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,13}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
tikz-pgf diagrams tikz-node
I am trying with following code. I want to replace Hidden layer 2
with 9 nodes. And want to add text1, text2, and text3 like the following figure. And Finally, I want to replace Input #1 to Input #9
with Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses.
Please need help.
documentclass{article}
usepackage{tikz}
begin{document}
pagestyle{empty}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name / y in {1,...,9}{
node[input neuron, pin=left:Input #y] (I-name) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNode{13}
newcommandNod{9}
% Draw the hidden layer nodes
foreach N in {1,...,Nhidden} {
foreach y in {1,...,Node} {
path[yshift=1.80cm]
node[hidden neuron] (HN-y) at (N*layersep,-y cm) {};
}
node[annot,above of=HN-1, node distance=1cm] (hlN) {Hidden layer N};
}
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-6] (O) {};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,13}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,13}
foreach dest in {1,...,13}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,13}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
tikz-pgf diagrams tikz-node
tikz-pgf diagrams tikz-node
edited May 29 '18 at 11:48
asked May 29 '18 at 11:42
Md. Rezwanul Haque
1155
1155
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{positioning}
begin{document}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name [count=y] in
{Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses}
{ node[input neuron, pin=left:name] (I-y) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNodOne{13}
newcommandNodTwo{9}
newcommandNod{9}
% Draw the hidden layer nodes
% foreach N in {1,...,Nhidden} {
foreach y in {1,...,NodOne} {
path[yshift=1.80cm]
node[hidden neuron] (H1-y) at (1*layersep,-y cm) {};
}
node[annot,above of=H1-1, node distance=1cm] (hl1) {Hidden layer 1};
foreach y in {1,...,NodTwo} {
path[yshift=0cm]
node[hidden neuron] (H2-y) at (2*layersep,-y cm) {};
}
node[annot,above of=H2-1, node distance=1cm] (hl2) {Hidden layer 2};
% }
node[below=0.5cm of H1-NodOne] (text1) {text 1};
node at (text1 -| H2-1) (text2) {text 2};
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-5] (O) {};
node at (text1 -| O) (text3) {text 3};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,NodOne}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,NodOne}
foreach dest in {1,...,NodTwo}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,NodTwo}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
add a comment |
I have update to do automatic layers.
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=yellow!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% set number of hidden layers, input and output name
csdef{N-HiddenL}{4}
csdef{N-Input-yshift}{0.5cm}
csdef{N-L1}{10}
csdef{N-L1-yshift}{1.8cm}
csdef{N-L1-annot}{1cm}
csdef{N-L2}{8}
csdef{N-L2-yshift}{1.30cm}
csdef{N-L2-annot}{1cm}
csdef{N-L3}{4}
csdef{N-L3-yshift}{1.30cm}
csdef{N-L3-annot}{1cm}
csdef{N-L4}{4}
csdef{N-L4-yshift}{1.30cm}
csdef{N-L4-annot}{1cm}
csdef{N-Output-yshift}{0.5cm}
newcommandInputList{xtextsubscript{1}, xtextsubscript{2}, xtextsubscript{3}}
newcommandHiddenList{Camada oculta i}
newcommandOutputList{ytextsubscript{1}, ytextsubscript{2}, ytextsubscript{3}}
% draw the input layer nodes
foreach name [count=i] in InputList
node[input neuron, pin=left:name, yshift=(csuse{N-Input-yshift})] (I-i) at (0,-i cm) {};
cslet{N-Input}{i}
% draw the hidden layer nodes
foreach i in {1,...,csuse{N-HiddenL}}
{
foreach j in {1,...,csuse{N-Li}} {
path[yshift=(csuse{N-Li-yshift})]
node[hidden neuron] (Hi-j) at (i*layersep,-j cm) {};
}
node[annot,above of=Hi-1, node distance=(csuse{N-Li-annot})] (hli) {HiddenList};
}
% draw the output layer node
foreach name [count=i] in OutputList
node[output neuron,pin={[pin edge={->}]right:name}, right of=Hcsuse{N-HiddenL}-1, yshift=(csuse{N-Output-yshift} - i cm)] (O-i) {};
cslet{N-Output}{i}
% annotate below the layers (draw text)
foreach name [count=i] in
{test 1, test 2, text 3, text 4}
{
ifnum i=1
node[below=0.5cm of H1-csuse{N-L1}] (text1) {name};
else
node at (text1 -| Hi-1) (texti) {name};
fi
}
node at (text1 -| O-1) (textO) {text out {numbernumexpr csuse{N-HiddenL}+1}};
% connect every node in the input layer with every node in the hidden layer
foreach source in {1,...,csuse{N-Input}}
foreach dest in {1,...,csuse{N-L1}}
path (I-source) edge (H1-dest);
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,csuse{N-HiddenL}}
foreach source in {1,...,csuse{N-LlastN}}
foreach dest in {1,...,csuse{N-LN}}
path (HlastN-source) edge (HN-dest);
% connect every node in the hidden layer with the output layer
foreach source in {1,...,csuse{N-Lcsuse{N-HiddenL}}}
foreach dest in {1,...,csuse{N-Output}}
path (Hcsuse{N-HiddenL}-source) edge (O-dest);
% annotate the layers
node[annot,left of=hl1, yshift=-1cm] {Camada de entrada};
node[annot,right of=hlcsuse{N-HiddenL}, yshift=-0.5cm] {Camada de saída};
end{tikzpicture}
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f433951%2ftwo-hidden-layers-with-different-neoron-numbers-each-layer-in-neural-network-dia%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{positioning}
begin{document}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name [count=y] in
{Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses}
{ node[input neuron, pin=left:name] (I-y) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNodOne{13}
newcommandNodTwo{9}
newcommandNod{9}
% Draw the hidden layer nodes
% foreach N in {1,...,Nhidden} {
foreach y in {1,...,NodOne} {
path[yshift=1.80cm]
node[hidden neuron] (H1-y) at (1*layersep,-y cm) {};
}
node[annot,above of=H1-1, node distance=1cm] (hl1) {Hidden layer 1};
foreach y in {1,...,NodTwo} {
path[yshift=0cm]
node[hidden neuron] (H2-y) at (2*layersep,-y cm) {};
}
node[annot,above of=H2-1, node distance=1cm] (hl2) {Hidden layer 2};
% }
node[below=0.5cm of H1-NodOne] (text1) {text 1};
node at (text1 -| H2-1) (text2) {text 2};
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-5] (O) {};
node at (text1 -| O) (text3) {text 3};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,NodOne}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,NodOne}
foreach dest in {1,...,NodTwo}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,NodTwo}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
add a comment |
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{positioning}
begin{document}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name [count=y] in
{Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses}
{ node[input neuron, pin=left:name] (I-y) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNodOne{13}
newcommandNodTwo{9}
newcommandNod{9}
% Draw the hidden layer nodes
% foreach N in {1,...,Nhidden} {
foreach y in {1,...,NodOne} {
path[yshift=1.80cm]
node[hidden neuron] (H1-y) at (1*layersep,-y cm) {};
}
node[annot,above of=H1-1, node distance=1cm] (hl1) {Hidden layer 1};
foreach y in {1,...,NodTwo} {
path[yshift=0cm]
node[hidden neuron] (H2-y) at (2*layersep,-y cm) {};
}
node[annot,above of=H2-1, node distance=1cm] (hl2) {Hidden layer 2};
% }
node[below=0.5cm of H1-NodOne] (text1) {text 1};
node at (text1 -| H2-1) (text2) {text 2};
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-5] (O) {};
node at (text1 -| O) (text3) {text 3};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,NodOne}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,NodOne}
foreach dest in {1,...,NodTwo}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,NodTwo}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
add a comment |
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{positioning}
begin{document}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name [count=y] in
{Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses}
{ node[input neuron, pin=left:name] (I-y) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNodOne{13}
newcommandNodTwo{9}
newcommandNod{9}
% Draw the hidden layer nodes
% foreach N in {1,...,Nhidden} {
foreach y in {1,...,NodOne} {
path[yshift=1.80cm]
node[hidden neuron] (H1-y) at (1*layersep,-y cm) {};
}
node[annot,above of=H1-1, node distance=1cm] (hl1) {Hidden layer 1};
foreach y in {1,...,NodTwo} {
path[yshift=0cm]
node[hidden neuron] (H2-y) at (2*layersep,-y cm) {};
}
node[annot,above of=H2-1, node distance=1cm] (hl2) {Hidden layer 2};
% }
node[below=0.5cm of H1-NodOne] (text1) {text 1};
node at (text1 -| H2-1) (text2) {text 2};
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-5] (O) {};
node at (text1 -| O) (text3) {text 3};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,NodOne}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,NodOne}
foreach dest in {1,...,NodTwo}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,NodTwo}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
documentclass[tikz,border=3.14mm]{standalone}
usetikzlibrary{positioning}
begin{document}
deflayersep{3.5cm}
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=red!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% Draw the input layer nodes
foreach name [count=y] in
{Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nuclei, Mitoses}
{ node[input neuron, pin=left:name] (I-y) at (0,-y cm) {};
}
% set number of hidden layers
newcommandNhidden{2}
newcommandNodOne{13}
newcommandNodTwo{9}
newcommandNod{9}
% Draw the hidden layer nodes
% foreach N in {1,...,Nhidden} {
foreach y in {1,...,NodOne} {
path[yshift=1.80cm]
node[hidden neuron] (H1-y) at (1*layersep,-y cm) {};
}
node[annot,above of=H1-1, node distance=1cm] (hl1) {Hidden layer 1};
foreach y in {1,...,NodTwo} {
path[yshift=0cm]
node[hidden neuron] (H2-y) at (2*layersep,-y cm) {};
}
node[annot,above of=H2-1, node distance=1cm] (hl2) {Hidden layer 2};
% }
node[below=0.5cm of H1-NodOne] (text1) {text 1};
node at (text1 -| H2-1) (text2) {text 2};
% Draw the output layer node
node[output neuron,pin={[pin edge={->}]right:Benin/Malignant}, right of=HNhidden-5] (O) {};
node at (text1 -| O) (text3) {text 3};
% Connect every node in the input layer with every node in the
% hidden layer.
foreach source in {1,...,9}{
foreach dest in {1,...,NodOne}{
path (I-source) edge (H1-dest);
}
}
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,Nhidden}
foreach source in {1,...,NodOne}
foreach dest in {1,...,NodTwo}
path (HlastN-source) edge (HN-dest);
% Connect every node in the hidden layer with the output layer
foreach source in {1,...,NodTwo}
path (HNhidden-source) edge (O);
% Annotate the layers
node[annot,left of=hl1] {Input layer};
node[annot,right of=hlNhidden] {Output layer};
end{tikzpicture}
% End of code
end{document}
edited May 29 '18 at 13:16
answered May 29 '18 at 11:52
marmot
88.2k4101190
88.2k4101190
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
add a comment |
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, How to replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 11:57
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
Sir, Please read the description of this question. How to do replace 13 nodes of Hidden Layer 2 with 9 nodes?
– Md. Rezwanul Haque
May 29 '18 at 12:19
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
@Md.RezwanulHaque I updated my answer. Please disclose the source of your code.
– marmot
May 29 '18 at 13:17
add a comment |
I have update to do automatic layers.
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=yellow!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% set number of hidden layers, input and output name
csdef{N-HiddenL}{4}
csdef{N-Input-yshift}{0.5cm}
csdef{N-L1}{10}
csdef{N-L1-yshift}{1.8cm}
csdef{N-L1-annot}{1cm}
csdef{N-L2}{8}
csdef{N-L2-yshift}{1.30cm}
csdef{N-L2-annot}{1cm}
csdef{N-L3}{4}
csdef{N-L3-yshift}{1.30cm}
csdef{N-L3-annot}{1cm}
csdef{N-L4}{4}
csdef{N-L4-yshift}{1.30cm}
csdef{N-L4-annot}{1cm}
csdef{N-Output-yshift}{0.5cm}
newcommandInputList{xtextsubscript{1}, xtextsubscript{2}, xtextsubscript{3}}
newcommandHiddenList{Camada oculta i}
newcommandOutputList{ytextsubscript{1}, ytextsubscript{2}, ytextsubscript{3}}
% draw the input layer nodes
foreach name [count=i] in InputList
node[input neuron, pin=left:name, yshift=(csuse{N-Input-yshift})] (I-i) at (0,-i cm) {};
cslet{N-Input}{i}
% draw the hidden layer nodes
foreach i in {1,...,csuse{N-HiddenL}}
{
foreach j in {1,...,csuse{N-Li}} {
path[yshift=(csuse{N-Li-yshift})]
node[hidden neuron] (Hi-j) at (i*layersep,-j cm) {};
}
node[annot,above of=Hi-1, node distance=(csuse{N-Li-annot})] (hli) {HiddenList};
}
% draw the output layer node
foreach name [count=i] in OutputList
node[output neuron,pin={[pin edge={->}]right:name}, right of=Hcsuse{N-HiddenL}-1, yshift=(csuse{N-Output-yshift} - i cm)] (O-i) {};
cslet{N-Output}{i}
% annotate below the layers (draw text)
foreach name [count=i] in
{test 1, test 2, text 3, text 4}
{
ifnum i=1
node[below=0.5cm of H1-csuse{N-L1}] (text1) {name};
else
node at (text1 -| Hi-1) (texti) {name};
fi
}
node at (text1 -| O-1) (textO) {text out {numbernumexpr csuse{N-HiddenL}+1}};
% connect every node in the input layer with every node in the hidden layer
foreach source in {1,...,csuse{N-Input}}
foreach dest in {1,...,csuse{N-L1}}
path (I-source) edge (H1-dest);
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,csuse{N-HiddenL}}
foreach source in {1,...,csuse{N-LlastN}}
foreach dest in {1,...,csuse{N-LN}}
path (HlastN-source) edge (HN-dest);
% connect every node in the hidden layer with the output layer
foreach source in {1,...,csuse{N-Lcsuse{N-HiddenL}}}
foreach dest in {1,...,csuse{N-Output}}
path (Hcsuse{N-HiddenL}-source) edge (O-dest);
% annotate the layers
node[annot,left of=hl1, yshift=-1cm] {Camada de entrada};
node[annot,right of=hlcsuse{N-HiddenL}, yshift=-0.5cm] {Camada de saída};
end{tikzpicture}
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
add a comment |
I have update to do automatic layers.
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=yellow!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% set number of hidden layers, input and output name
csdef{N-HiddenL}{4}
csdef{N-Input-yshift}{0.5cm}
csdef{N-L1}{10}
csdef{N-L1-yshift}{1.8cm}
csdef{N-L1-annot}{1cm}
csdef{N-L2}{8}
csdef{N-L2-yshift}{1.30cm}
csdef{N-L2-annot}{1cm}
csdef{N-L3}{4}
csdef{N-L3-yshift}{1.30cm}
csdef{N-L3-annot}{1cm}
csdef{N-L4}{4}
csdef{N-L4-yshift}{1.30cm}
csdef{N-L4-annot}{1cm}
csdef{N-Output-yshift}{0.5cm}
newcommandInputList{xtextsubscript{1}, xtextsubscript{2}, xtextsubscript{3}}
newcommandHiddenList{Camada oculta i}
newcommandOutputList{ytextsubscript{1}, ytextsubscript{2}, ytextsubscript{3}}
% draw the input layer nodes
foreach name [count=i] in InputList
node[input neuron, pin=left:name, yshift=(csuse{N-Input-yshift})] (I-i) at (0,-i cm) {};
cslet{N-Input}{i}
% draw the hidden layer nodes
foreach i in {1,...,csuse{N-HiddenL}}
{
foreach j in {1,...,csuse{N-Li}} {
path[yshift=(csuse{N-Li-yshift})]
node[hidden neuron] (Hi-j) at (i*layersep,-j cm) {};
}
node[annot,above of=Hi-1, node distance=(csuse{N-Li-annot})] (hli) {HiddenList};
}
% draw the output layer node
foreach name [count=i] in OutputList
node[output neuron,pin={[pin edge={->}]right:name}, right of=Hcsuse{N-HiddenL}-1, yshift=(csuse{N-Output-yshift} - i cm)] (O-i) {};
cslet{N-Output}{i}
% annotate below the layers (draw text)
foreach name [count=i] in
{test 1, test 2, text 3, text 4}
{
ifnum i=1
node[below=0.5cm of H1-csuse{N-L1}] (text1) {name};
else
node at (text1 -| Hi-1) (texti) {name};
fi
}
node at (text1 -| O-1) (textO) {text out {numbernumexpr csuse{N-HiddenL}+1}};
% connect every node in the input layer with every node in the hidden layer
foreach source in {1,...,csuse{N-Input}}
foreach dest in {1,...,csuse{N-L1}}
path (I-source) edge (H1-dest);
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,csuse{N-HiddenL}}
foreach source in {1,...,csuse{N-LlastN}}
foreach dest in {1,...,csuse{N-LN}}
path (HlastN-source) edge (HN-dest);
% connect every node in the hidden layer with the output layer
foreach source in {1,...,csuse{N-Lcsuse{N-HiddenL}}}
foreach dest in {1,...,csuse{N-Output}}
path (Hcsuse{N-HiddenL}-source) edge (O-dest);
% annotate the layers
node[annot,left of=hl1, yshift=-1cm] {Camada de entrada};
node[annot,right of=hlcsuse{N-HiddenL}, yshift=-0.5cm] {Camada de saída};
end{tikzpicture}
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
add a comment |
I have update to do automatic layers.
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=yellow!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% set number of hidden layers, input and output name
csdef{N-HiddenL}{4}
csdef{N-Input-yshift}{0.5cm}
csdef{N-L1}{10}
csdef{N-L1-yshift}{1.8cm}
csdef{N-L1-annot}{1cm}
csdef{N-L2}{8}
csdef{N-L2-yshift}{1.30cm}
csdef{N-L2-annot}{1cm}
csdef{N-L3}{4}
csdef{N-L3-yshift}{1.30cm}
csdef{N-L3-annot}{1cm}
csdef{N-L4}{4}
csdef{N-L4-yshift}{1.30cm}
csdef{N-L4-annot}{1cm}
csdef{N-Output-yshift}{0.5cm}
newcommandInputList{xtextsubscript{1}, xtextsubscript{2}, xtextsubscript{3}}
newcommandHiddenList{Camada oculta i}
newcommandOutputList{ytextsubscript{1}, ytextsubscript{2}, ytextsubscript{3}}
% draw the input layer nodes
foreach name [count=i] in InputList
node[input neuron, pin=left:name, yshift=(csuse{N-Input-yshift})] (I-i) at (0,-i cm) {};
cslet{N-Input}{i}
% draw the hidden layer nodes
foreach i in {1,...,csuse{N-HiddenL}}
{
foreach j in {1,...,csuse{N-Li}} {
path[yshift=(csuse{N-Li-yshift})]
node[hidden neuron] (Hi-j) at (i*layersep,-j cm) {};
}
node[annot,above of=Hi-1, node distance=(csuse{N-Li-annot})] (hli) {HiddenList};
}
% draw the output layer node
foreach name [count=i] in OutputList
node[output neuron,pin={[pin edge={->}]right:name}, right of=Hcsuse{N-HiddenL}-1, yshift=(csuse{N-Output-yshift} - i cm)] (O-i) {};
cslet{N-Output}{i}
% annotate below the layers (draw text)
foreach name [count=i] in
{test 1, test 2, text 3, text 4}
{
ifnum i=1
node[below=0.5cm of H1-csuse{N-L1}] (text1) {name};
else
node at (text1 -| Hi-1) (texti) {name};
fi
}
node at (text1 -| O-1) (textO) {text out {numbernumexpr csuse{N-HiddenL}+1}};
% connect every node in the input layer with every node in the hidden layer
foreach source in {1,...,csuse{N-Input}}
foreach dest in {1,...,csuse{N-L1}}
path (I-source) edge (H1-dest);
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,csuse{N-HiddenL}}
foreach source in {1,...,csuse{N-LlastN}}
foreach dest in {1,...,csuse{N-LN}}
path (HlastN-source) edge (HN-dest);
% connect every node in the hidden layer with the output layer
foreach source in {1,...,csuse{N-Lcsuse{N-HiddenL}}}
foreach dest in {1,...,csuse{N-Output}}
path (Hcsuse{N-HiddenL}-source) edge (O-dest);
% annotate the layers
node[annot,left of=hl1, yshift=-1cm] {Camada de entrada};
node[annot,right of=hlcsuse{N-HiddenL}, yshift=-0.5cm] {Camada de saída};
end{tikzpicture}
I have update to do automatic layers.
begin{tikzpicture}[
shorten >=1pt,->,
draw=black!50,
node distance=layersep,
every pin edge/.style={<-,shorten <=1pt},
neuron/.style={circle,fill=black!25,minimum size=17pt,inner sep=0pt},
input neuron/.style={neuron, fill=green!50},
output neuron/.style={neuron, fill=yellow!50},
hidden neuron/.style={neuron, fill=blue!50},
annot/.style={text width=4em, text centered}
]
% set number of hidden layers, input and output name
csdef{N-HiddenL}{4}
csdef{N-Input-yshift}{0.5cm}
csdef{N-L1}{10}
csdef{N-L1-yshift}{1.8cm}
csdef{N-L1-annot}{1cm}
csdef{N-L2}{8}
csdef{N-L2-yshift}{1.30cm}
csdef{N-L2-annot}{1cm}
csdef{N-L3}{4}
csdef{N-L3-yshift}{1.30cm}
csdef{N-L3-annot}{1cm}
csdef{N-L4}{4}
csdef{N-L4-yshift}{1.30cm}
csdef{N-L4-annot}{1cm}
csdef{N-Output-yshift}{0.5cm}
newcommandInputList{xtextsubscript{1}, xtextsubscript{2}, xtextsubscript{3}}
newcommandHiddenList{Camada oculta i}
newcommandOutputList{ytextsubscript{1}, ytextsubscript{2}, ytextsubscript{3}}
% draw the input layer nodes
foreach name [count=i] in InputList
node[input neuron, pin=left:name, yshift=(csuse{N-Input-yshift})] (I-i) at (0,-i cm) {};
cslet{N-Input}{i}
% draw the hidden layer nodes
foreach i in {1,...,csuse{N-HiddenL}}
{
foreach j in {1,...,csuse{N-Li}} {
path[yshift=(csuse{N-Li-yshift})]
node[hidden neuron] (Hi-j) at (i*layersep,-j cm) {};
}
node[annot,above of=Hi-1, node distance=(csuse{N-Li-annot})] (hli) {HiddenList};
}
% draw the output layer node
foreach name [count=i] in OutputList
node[output neuron,pin={[pin edge={->}]right:name}, right of=Hcsuse{N-HiddenL}-1, yshift=(csuse{N-Output-yshift} - i cm)] (O-i) {};
cslet{N-Output}{i}
% annotate below the layers (draw text)
foreach name [count=i] in
{test 1, test 2, text 3, text 4}
{
ifnum i=1
node[below=0.5cm of H1-csuse{N-L1}] (text1) {name};
else
node at (text1 -| Hi-1) (texti) {name};
fi
}
node at (text1 -| O-1) (textO) {text out {numbernumexpr csuse{N-HiddenL}+1}};
% connect every node in the input layer with every node in the hidden layer
foreach source in {1,...,csuse{N-Input}}
foreach dest in {1,...,csuse{N-L1}}
path (I-source) edge (H1-dest);
% connect all hidden stuff
foreach [remember=N as lastN (initially 1)] N in {2,...,csuse{N-HiddenL}}
foreach source in {1,...,csuse{N-LlastN}}
foreach dest in {1,...,csuse{N-LN}}
path (HlastN-source) edge (HN-dest);
% connect every node in the hidden layer with the output layer
foreach source in {1,...,csuse{N-Lcsuse{N-HiddenL}}}
foreach dest in {1,...,csuse{N-Output}}
path (Hcsuse{N-HiddenL}-source) edge (O-dest);
% annotate the layers
node[annot,left of=hl1, yshift=-1cm] {Camada de entrada};
node[annot,right of=hlcsuse{N-HiddenL}, yshift=-0.5cm] {Camada de saída};
end{tikzpicture}
edited Dec 13 '18 at 23:47
answered Dec 13 '18 at 21:33
Fábio Ribeiro
12
12
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
add a comment |
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
Welcome to TeX.SE! Can you please explain which update you mean? And can you please complete your given code to be compilable?
– Kurt
Dec 13 '18 at 23:34
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f433951%2ftwo-hidden-layers-with-different-neoron-numbers-each-layer-in-neural-network-dia%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown