anchor.diff:          scikit-learn \
           matplotlib \
           seaborn \
  -        cmake==3.14.0 \
           && \
   
       # Jupyter Notebook
  -    conda install -c conda-forge -y \
  +    conda install -c conda-forge -y --freeze-installed \
           jupyter \
           jupyter_contrib_nbextensions \
           jupyter_nbextensions_configurator \
  
positive.code: # Tensorflow
  # ------------------------------------------------------------------
  
      conda install -y \
          tensorflow==2.3.0 \
          && \
  
  # ==================================================================
  # PyTorch
  # ------------------------------------------------------------------
  
      conda install -y \
          pytorch==1.7.1 \
          torchvision torchaudio cpuonly -c pytorch && \
      conda install -c conda-forge -y \
          pytorch-lightning \
          && \
  
      $PIP_INSTALL \
          torch_optimizer \
          && \
  
  # ==================================================================
  # OpenCV
  # ------------------------------------------------------------------
  
      apt-get install -y build-essential && \
      $GIT_CLONE --branch 4.3.0 https://github.com/opencv/opencv ~/opencv && \
      mkdir -p ~/opencv/build && cd ~/opencv/build && \
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D WITH_IPP=OFF \
            -D WITH_CUDA=OFF \
            -D WITH_OPENCL=OFF \
            -D BUILD_TESTS=OFF \
            -D BUILD_PERF_TESTS=OFF \
            -D PYTHON3_LIBRARY=/opt/conda/lib/libpython3.8.so \
            -D PYTHON3_INCLUDE_DIR=/opt/conda/include/python3.8 \
            -D PYTHON3_EXECUTABLE=/opt/conda/bin/python \
            -D PYTHON3_PACKAGES_PATH=/opt/conda/lib/python3.8/site-packages \
            .. && \
      make -j"$(nproc)" install && \
      ln -s /usr/local/include/opencv4/opencv2 /usr/local/include/opencv2 && \
      DEBIAN_FRONTEND=noninteractive apt-get remove -y build-essential && \
  
  # ==================================================================
  # Additional Packages
  # ------------------------------------------------------------------
  
      conda install -c conda-forge -y \
          gensim \
          transformers \
          optuna \
          yellowbrick \
          plotly \
          shap \
          gym \
          && \
  
      $PIP_INSTALL \
          zhconv \
          iterative-stratification \
          && \
  
      # LightGBM, Xgboost
      conda install -c conda-forge -y lightgbm xgboost \
          && \
  
  # ==================================================================
  # Config & Cleanup
  # ------------------------------------------------------------------
      ldconfig && \
      apt-get clean -y && \
      apt-get autoremove -y && \
      rm -rf /tmp/* && \
      rm -rf /var/cache/apk/*
  
  ENV TZ=Asia/Taipei
  RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  
negative.code: RUN APT_INSTALL="apt-get install -y --no-install-recommends" && \
      PIP_INSTALL="pip --no-cache-dir install --upgrade --default-timeout=100" && \
      GIT_CLONE="git clone --depth 10" && \
      PYTHONDONTWRITEBYTECODE=true && \
  
  # ==================================================================
  # System Packages & Tools
  