# DCNN Designed for EMNIST-Letters implementation

**URL:** <https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348>\
**Category:** Tuning Help\
**Created:** [March 31, 2020, 9:55am UTC](https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348 "2020-03-31T09:55:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![arnaud22](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.konduit.ai/arnaud22/32/1405_2.png) [@arnaud22](https://community.konduit.ai/u/arnaud22)\
**Post date:** [March 31, 2020, 9:55am UTC](https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348/1 "2020-03-31T09:55:22Z")

</div>

Hi all,

I’m looking to make an implementation on EMNIST letters. My actual model predict good answer 90%.  
I see this paper :

> **[1807.00284.pdf](https://arxiv.org/pdf/1807.00284.pdf)**
>
> 905.38 KB

In paragraph 4.4 i try to implement this architecture but doesn’t work (for 1 epoch) :  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/konduit/original/1X/ca98f247dc5953483c3cdbc0c6873fa521aaf0a1.png)

My implementation :

```java
    MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder().seed(seed).updater(new RmsProp())
				.weightInit(WeightInit.XAVIER).list()
				// premier bloc
				.layer(new ConvolutionLayer.Builder(3, 3).nIn(channels).nOut(473).build())
				.layer(new SubsamplingLayer.Builder(SubsamplingLayer.PoolingType.AVG).kernelSize(2, 2).build())
				.layer(new BatchNormalization.Builder().activation(Activation.RELU).dropOut(0.15).build())
				// Deuxième bloc
				.layer(new ConvolutionLayer.Builder(3, 3).nOut(238).build())
				.layer(new BatchNormalization.Builder().activation(Activation.LEAKYRELU).dropOut(0.20).build())
				// Troisième bloc
				.layer(new ConvolutionLayer.Builder(3, 3).nOut(133).build())
				.layer(new BatchNormalization.Builder().activation(Activation.RELU).dropOut(0.10).build())
				// quatrième bloc
				.layer(new ConvolutionLayer.Builder(3, 3).nOut(387).build())
				.layer(new BatchNormalization.Builder().activation(Activation.THRESHOLDEDRELU).dropOut(0.10).build())
				// cinquième bloc
				.layer(new ConvolutionLayer.Builder(5, 5).nOut(187).build())
				.layer(new BatchNormalization.Builder().activation(Activation.ELU).dropOut(0.50).build())
				// Première couche fully
				.layer(new DenseLayer.Builder().activation(Activation.RELU).nOut(313).build())
				.layer(new BatchNormalization.Builder().dropOut(0.20).build())
				// Deuxième couche fully
// .layer(new DenseLayer.Builder().activation(Activation.ELU).nOut(252).build())
				.layer(new DenseLayer.Builder().activation(Activation.SIGMOID).nOut(252).build())
				.layer(new BatchNormalization.Builder().dropOut(0.20).build())
				// couche d'activation
				.layer(new OutputLayer.Builder().nOut(outputNum).lossFunction(new LossNegativeLogLikelihood(weights))
						.activation(Activation.SOFTMAX).build())
				.setInputType(InputType.convolutionalFlat(height, width, channels)).build();

```

I put LossNegativeLogLikelihood because in need to get weigths on my unbalanced data.  
Some ideas ?

---

<div class="post-metadata">

**Author:** ![arnaud22](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.konduit.ai/arnaud22/32/1405_2.png) [@arnaud22](https://community.konduit.ai/u/arnaud22)\
**Post date:** [March 31, 2020, 9:57am UTC](https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348/2 "2020-03-31T09:57:38Z")

</div>

Sry i don’t understand how to format code 😕

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/konduit/original/1X/9d5e7030a336f72153e08e898c13b83adeb5da16.png)

---

<div class="post-metadata">

**Author:** ![treo](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.konduit.ai/treo/32/47_2.png) [@treo](https://community.konduit.ai/u/treo)\
**Post date:** [March 31, 2020, 10:30am UTC](https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348/3 "2020-03-31T10:30:51Z")

</div>

> [@arnaud22](#):
>
> Sry i don’t understand how to format code 😕

You do it like that

```
```java
java code here
```
```

Anyway, I see that you are using just the no-arg constructor of the RmsProp updater, so you are using the default learning rate of 0.1 instead of the learning rate the paper uses, which is 0.0001.

---

<div class="post-metadata">

**Author:** ![arnaud22](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.konduit.ai/arnaud22/32/1405_2.png) [@arnaud22](https://community.konduit.ai/u/arnaud22)\
**Post date:** [March 31, 2020, 11:23am UTC](https://community.konduit.ai/t/dcnn-designed-for-emnist-letters-implementation/348/4 "2020-03-31T11:23:32Z")

</div>

It’s works better indeed ! You’re the best 🙂
