Seminário Interno::Jupyter Notebooks na UFSC

800px-Jupyter_logo.svg

Geral

Infos

  1. Jupyter
  2. Wikipedia::Project Jupyter

Tutoriais

  1. Jupyter Notebook for Beginners: A Tutorial
  2. Datacamp::Jupyter Notebook Tutorial: The Definitive Guide
  3. Introduction to IPython & Jupyter Notebooks (slideshare)

Exemplos

Python

  1. Fast.AI + Kaggle:
    1. https://www.kaggle.com/hortonhearsafoo/fast-ai-v3-lesson-1
    2. Practical Deep Learning for Coders, v3 -> Curso oferecendo diferentes opções em nuvem (Colab, Paperspace, FloyHub, AWS, Azure,… ): https://course.fast.ai/
  2. Jupyter.org: https://jupyter.org/
    1. Usando Binder:  Equações de Lorenz com Controles Interativos
    2. Companion Jupyter notebooks for the book “Deep Learning with Python” – https://github.com/fchollet/deep-learning-with-python-notebooks
  3. Anaconda
    1. https://anaconda.org/ijstokes/pythondataviz-ipynb/notebook
      anaconda
  4. JupyterHub
    1. JupyterHub Example Notebooks (HidroShare)
  5. Google Colab:
    1. Python Data Science Handbook:
      1. https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/03.08-Aggregation-and-Grouping.ipynb
      2. https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/04.01-Simple-Line-Plots.ipynb
      3. https://colab.research.google.com/github/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/05.14-Image-Features.ipynb
    2. Deep Learning::Disciplina Visão Computacional – PPGCC/UFSC
      1. Deep Learning::Usando a Nuvem para seus Trabalhos
      2. Notebook com todos os passos para usar Aprendizado por Transferência com Cães e Gatos em PyTorch e fast.ai: cats-dogs-PyTorch-fastaii.pynb (lembre-se de copiá-lo para seu Drive antes de começar a editar, senão você não conseguirá salvar)
      3. Exemplo em Keras: https://drive.google.com/open?id=1jEW5G2gMrYtn8mDMof8Tk0145ZLOrGb9 (link compartilhado red-only via GDrive)
      4. Testezinho Simples
      5. Gerenciando Dados: Downloading Datasets into Google Drive via Google Colab::Step-by-step guide to use Google Drive in Google Colab for data science projects
  6. Libs e Aplicaçõesw
    1. Computação Gráfica: Multivolume rendering in Jupyter with ipyvolume: cross-language 3d visualization

lorenz1

R

R1

R2

R4

C++

C++

Gráficos e Imagens em C++

C++2

Usando em Sala de Aula

Jupyter supporta um Slide Presentation Mode -> execução em tela cheia, página a página
  1. Present Your Data Science Projects with Jupyter Notebook Slides!

Convertendo .ipynb  em Python, LaTeX,  HTML, etc

  1. Jump Out of the Jupyter Notebook with nbconvert::Easily Convert Notebooks to Python Scripts and Sharable Files

Exemplos de Disciplinas

  1. Stanford University::CS231n: Convolutional Neural Networks for Visual Recognition
    1. Spring 2018 Assignments::Stanford University::CS231n: Convolutional Neural Networks for Visual Recognition

Tutoriais de Instalação, Relatos de Caso

JupyterHub

  1. Rackspace::Deploying JupyterHub for Education
  2. Jeff Brown. USING JUPYTERHUB IN THE CLASSROOM: SETUP AND LESSONS LEARNED

Plataformas

Instalações Multiusuário

  1. JupyterHub (associado a contas de usuário): https://github.com/jupyterhub/jupyterhub
    1. Visualizador NBViewer (para ver um notebook read-only sem poder executar, mas com resultados gráficos sendo mostrados – dispensa kernels, permite disponibilizar um notebook em qualquer lugar, mas obriga o aluno a copiar a .ipynb para um local seu ou a fazer um login)
  2. JupyterLabs com Binder (sem login):

Instalações para seu Computador ou sua Intranet

  1. Jupyter
    1. Single user: Installing Jupyter Notebook — Jupyter Documentation 4.1.1
    2. Jupyter Notebook for Beginners: A Tutorial
    3. Jupyter.org::Installing the Jupyter Notebook – Get up and running with the Jupyter Notebook on your computer within minutes!
    4. Eu quero, eu quero eu quero! – Instalando em Windows com Anaconda
      windows
    5. Jean Hauck::passo-a-passo simples para instalar Jupyter com R no Windows
       
      * Rodar tudo como Admin
       
      1. Instalar Python:
       
      2. Instalar R:
       
      3. Instalar Jupyter Notebook: (https://jupyter.org/install)
      Rodar no prompt:
        python -m pip install –upgrade pip
        python -m pip install jupyter
       
      4. Instalar RInterpreter no R: (https://irkernel.github.io/installation/)
      Rodar no R console:
        install.packages(‘IRkernel’)
        IRkernel::installspec(user = FALSE)
       
      5. Rodar Jupyter: 
      Rodar no prompt:
        jupyter notebook

  2. JupyterLab
    1. Installing Jupyter Lab On Your Ubuntu Server
    2. JupyterLab (oficial – pressupõe Jupyter)
  3. Sage
    1. Install standalone Sage Notebook (supostamente este funciona com Moodle)
      1. Alguém quer testar?
    2. Background (se você quiser saber o que é SageMath):
      1. https://help.ubuntu.com/community/SAGE
      2. http://www.sagemath.org/download-linux.html
      3. https://doc.sagemath.org/html/en/installation/

Ferramentas/IDEs Offline para usar/editar Jupyter

PyCharm

  • https://www.jetbrains.com/pycharm/
  • Edita e executa .ipynb de forma wysiwyg
  • Feio e Shareware
  • A IDE é complexa e voltada ao desenvolvimento de systemas em Python. Inadequada para ensino. Boa para professores.

ipynb-pycharm

Atom

atom-jupyter

Plataformas Comerciais na Nuvem

Gratuitas

  1. Google Collab
  2. Kaggle

Pagas

GoogleCloud

  1. Se você tem uma conta Google, você tem direito a 300 horas de processamento na Google Cloud:
    1. Como estamos usando TensorFlow, é possível inclusive usar a nova arquitetura de TPU da Google: https://cloud.google.com/tpu/
    2. https://www.blog.google/products/google-cloud/google-cloud-offer-tpus-machine-learning/
    3. https://blog.goodaudience.com/how-to-use-google-cloud-tpus-177c3a025067?gi=37469eca628c
    4. https://www.theregister.co.uk/2018/06/20/google_cloud_tpus/
    5. Na Internet está cheio de turoriais de como usar TensorFlow pela interface

Paperspace

Paperspace tem sido bastante discutido e citado.  Tem suporte especial aos cursos do fast.ai.

  1. Site: https://www.paperspace.com/
  2. Ambiente de desenvolvimento: Gradient
  3. Tutorial -> Towards Data Science: How to use Paperspace to train your Deep Neural Networks

BigML

BigML é diferente dos outros provedores em nuvem pelo fato de não estar associado a nenhuma grande empresa de processamento de dados ou fabricante de computadores, sendo uma empresa voltada a esse fim. Em função disso possui vários programas acadêmicos que se deve explorar e também a vantagem de ser agnóstico a plataforma e framework: Aqui você pode desenvolver, treinar e rodar tudo e depois levar para casa.

  1. Site: https://bigml.com/
  2. BigML for Education

Amazon Web Services – AWS

  1. AWS
    1. Oferece suporte especial a TensorFlow
  2. Amazon EC2
  3. Amazon SageMaker: A fully-managed platform that enables developers and data scientists to quickly and easily build, train, and deploy machine learning models at any scale and removes all the barriers that typically slow down developers who want to use machine learning.
    1. SageMaker oferece uma grande variedade de configurações de hardware virtual para você usar: https://aws.amazon.com/sagemaker/pricing/instance-types/
  4. Amazon Machine Learning Developer Guide

FloydHub

FloydHub é uma plataforma para desenvolvimento e execução de CNNs extremamente simples:

  1. Site: https://www.floydhub.com/
  2. FloydHub Workspace é uma IDE de desenvolvimento online (baseada em Jupyter): https://www.floydhub.com/product/build
  3. Suporta TensorFlow, Keras, Caffe e Pytorch

Microsoft Azure Machine Learning Studio

  1. Site: https://azure.microsoft.com/en-us/services/machine-learning-studio/
  2. Possui uma ferramenta: Azure AI -Artificial intelligence productivity for virtually every developer and scenario
  3. Exemplo: Defect detection with image analysis

IBM Watson Studio

  1. IBM’s experiment-centric deep learning service within Watson Studio allows data scientists to visually design their neural networks and scale out their training runs while auto-allocation means paying only for the resources utilized.
  2. Tutorial: Generate restaurant reviews using deep learning

Disscussão dos Provedores

  1. Medium: AWS vs Paperspace vs FloydHub : Choosing your cloud GPU partner
  2. Top 5 Machine Learning-as-a-Service providers

Perguntas em Aberto

Em tempo: Por que Python?

  1. TIOBE Index for February 2019
  2. Linguagem de referência para:
    1. IA
    2. Ciência de Dados
    3. Single-Board Computers e IoT (RaspberryPi, etc)

Sobre o Autor

possui graduação em Ciências da Computação pela Universidade Federal de Santa Catarina (1989) e Doutorado Acadêmico (Dr. rer.nat.) em Ciências da Computação pela Universidade de Kaiserslautern (1996). Atualmente é professor Titular da Universidade Federal de Santa Catarina, onde é professor do Programa de Pós-graduação em Ciência da Computação e dos cursos de graduação em Ciências da Computação e Sistemas de Informação. Tem experiência nas áreas de Informática em Saúde, Processamento e Análise de Imagens e Engenharia Biomédica, com ênfase em Telemedicina, Telerradiologia, Sistemas de Auxílio ao Diagnóstico por Imagem e Processamento de Imagens Médicas, com foco nos seguintes temas: analise inteligente de imagens, DICOM, CBIR, informática médica, visão computacional e PACS. Coordena o Instituto Nacional de Ciência e Tecnologia para Convergência Digital - INCoD. Foi o criador e primeiro Coordenador do Núcleo de Telessaúde de Santa Catarina no âmbito do Programa Telessaúde Brasil do Ministério da Saúde e da OPAS - Organização Pan-Americana de Saúde e criador do Núcleo Santa Catarina da RUTE - Rede Universitária de Telemedicina.