Commit af27ad55 authored by pvskand's avatar pvskand
Browse files

conv block

parent 25c7351c
Loading
Loading
Loading
Loading
+50 −2
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ import tensorflow as tf
import deepchem as dc
from deepchem.models import Sequential
from deepchem.models.tensorgraph.layers import Conv2D, MaxPool2D, Conv2DTranspose, Concat, Feature, Label, BatchNorm
from deepchem.models.tensorgraph.layers import SoftMaxCrossEntropy, ReduceMean, SoftMax
from deepchem.models.tensorgraph.layers import SoftMaxCrossEntropy, ReduceMean, SoftMax, ReLU, Add
from deepchem.models import TensorGraph


@@ -29,6 +29,51 @@ class ResNet50(TensorGraph):
         specifies number of classes
    """

  def conv_block(input, kernel_size, filters, strides=2):
    filters1, filters2, filters3 = filters
    output = Conv2D(
        num_outputs=filters1,
        kernel_size=1,
        stride=strides,
        activation='linear',
        padding='same',
        in_layers=[input])
    output = BatchNorm(in_layers=[output])
    output = ReLU(output)

    output = Conv2D(
        num_outputs=filters2,
        kernel_size=kernel_size,
        stride=strides,
        activation='linear',
        padding='same',
        in_layers=[output])
    output = BatchNorm(in_layers=[output])
    output = ReLU(output)

    output = Conv2D(
        num_outputs=filters3,
        kernel_size=1,
        stride=2,
        activation='linear',
        padding='same',
        in_layers=[output])
    output = BatchNorm(in_layers=[output])

    shortcut = Conv2D(
        num_outputs=filters3,
        kernel_size=1,
        stride=2,
        activation='linear',
        padding='same',
        in_layers=[input])
    shortcut = BatchNorm(in_layers=[shortcut])

    output = Add(in_layers[shortcut, output])
    output = ReLU(output)

    return output

  def __init__(self,
               img_rows=224,
               img_cols=224,
@@ -47,8 +92,11 @@ class ResNet50(TensorGraph):
        num_outputs=64,
        kernel_size=7,
        stride=2,
        activation='relu',
        activation='linear',
        padding='same',
        in_layers=[input])
    bn1 = BatchNorm(in_layers=[conv1])
    ac1 = ReLU(bn1)
    pool1 = MaxPool2D(ksize=[1, 2, 2, 1], in_layers=[bn1])

    cb1 = conv_block(pool1, 3, [64, 64, 256], 1)