denseBlock.js 1.7 KB

123456789101112131415161718192021222324252627282930
  1. import * as tf from '@tensorflow/tfjs-core';
  2. import { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';
  3. export function denseBlock3(x, denseBlockParams, isFirstLayer) {
  4. if (isFirstLayer === void 0) { isFirstLayer = false; }
  5. return tf.tidy(function () {
  6. var out1 = tf.relu(isFirstLayer
  7. ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, [2, 2], 'same'), denseBlockParams.conv0.bias)
  8. : depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2]));
  9. var out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
  10. var in3 = tf.relu(tf.add(out1, out2));
  11. var out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
  12. return tf.relu(tf.add(out1, tf.add(out2, out3)));
  13. });
  14. }
  15. export function denseBlock4(x, denseBlockParams, isFirstLayer, isScaleDown) {
  16. if (isFirstLayer === void 0) { isFirstLayer = false; }
  17. if (isScaleDown === void 0) { isScaleDown = true; }
  18. return tf.tidy(function () {
  19. var out1 = tf.relu(isFirstLayer
  20. ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, isScaleDown ? [2, 2] : [1, 1], 'same'), denseBlockParams.conv0.bias)
  21. : depthwiseSeparableConv(x, denseBlockParams.conv0, isScaleDown ? [2, 2] : [1, 1]));
  22. var out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
  23. var in3 = tf.relu(tf.add(out1, out2));
  24. var out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
  25. var in4 = tf.relu(tf.add(out1, tf.add(out2, out3)));
  26. var out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);
  27. return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4))));
  28. });
  29. }
  30. //# sourceMappingURL=denseBlock.js.map