Exploring Google Colab (Part 1 of N)

[ deep-learning  machine-learning  python  tensorflow  easi  ]

One: this is called “Part 1 of N” b/c I know I’ll be posting more on this, and don’t want to have to come up w/ crazy, catchy titles for each, and I don’t know how many there will be! Two: on a side note, I originally dated this file as 2018 instead of 2019, which I’ve done for almost every 2019 post so far. It’s 2019, Kev! Get with it! Three: it’s Pi Day. I love math and physics so much, but Pi Day? Meh.


In this video, Getting Started with TensorFlow in Google Colaboratory, we start in Google Drive and create a new Colab JNB. The instructor pip installs tensorflow… I thought, “Wait, last time I checked, TensorFlow came pre-installed.” So I tested this out: went to Google Drive, created a new Colab JNB, and successfully imported tensorflow (import tensorflow as tf).

It then occurred to me: “But which version of TensorFlow is it?”

tf.__version__
  '1.13.1'

And it further occurred to me: “What is my default Python environment like in general?” It’s actually pretty jam packed.

!pip freeze
  absl-py==0.7.0
  alabaster==0.7.12
  albumentations==0.1.12
  altair==2.4.1
  astor==0.7.1
  astropy==3.0.5
  atari-py==0.1.7
  atomicwrites==1.3.0
  attrs==19.1.0
  audioread==2.1.6
  autograd==1.2
  Babel==2.6.0
  backcall==0.1.0
  backports.tempfile==1.0
  backports.weakref==1.0.post1
  beautifulsoup4==4.6.3
  bleach==3.1.0
  bokeh==1.0.4
  boto==2.49.0
  boto3==1.9.106
  botocore==1.12.106
  Bottleneck==1.2.1
  bs4==0.0.1
  bz2file==0.98
  cachetools==3.1.0
  certifi==2018.11.29
  cffi==1.12.2
  chainer==5.0.0
  chardet==3.0.4
  Click==7.0
  cloudpickle==0.6.1
  cmake==3.12.0
  colorlover==0.3.0
  community==1.0.0b1
  contextlib2==0.5.5
  convertdate==2.1.3
  coverage==3.7.1
  coveralls==0.5
  crcmod==1.7
  cufflinks==0.14.6
  cvxopt==1.2.3
  cvxpy==1.0.15
  cycler==0.10.0
  cymem==2.0.2
  Cython==0.29.6
  cytoolz==0.9.0.1
  daft==0.0.4
  dask==0.20.2
  dataclasses==0.6
  datascience==0.10.6
  decorator==4.3.2
  defusedxml==0.5.0
  dill==0.2.9
  distributed==1.25.3
  Django==2.1.7
  dlib==19.16.0
  dm-sonnet==1.23
  docopt==0.6.2
  docutils==0.14
  dopamine-rl==1.0.5
  easydict==1.9
  ecos==2.0.7.post1
  editdistance==0.5.2
  en-core-web-sm==2.0.0
  entrypoints==0.3
  enum34==1.1.6
  ephem==3.7.6.0
  et-xmlfile==1.0.1
  fa2==0.3.5
  fancyimpute==0.4.2
  fastai==1.0.46
  fastcache==1.0.2
  fastdtw==0.3.2
  fastprogress==0.1.20
  fastrlock==0.4
  fbprophet==0.4.post2
  featuretools==0.4.1
  filelock==3.0.10
  fix-yahoo-finance==0.0.22
  Flask==1.0.2
  folium==0.2.1
  future==0.16.0
  gast==0.2.2
  GDAL==2.2.2
  gdown==3.6.4
  gensim==3.6.0
  geographiclib==1.49
  geopy==1.17.0
  gevent==1.4.0
  gin-config==0.1.4
  glob2==0.6
  google==2.0.1
  google-api-core==1.8.0
  google-api-python-client==1.6.7
  google-auth==1.4.2
  google-auth-httplib2==0.0.3
  google-auth-oauthlib==0.2.0
  google-cloud-bigquery==1.8.1
  google-cloud-core==0.29.1
  google-cloud-language==1.0.2
  google-cloud-storage==1.13.2
  google-cloud-translate==1.3.3
  google-colab==1.0.0
  google-resumable-media==0.3.2
  googleapis-common-protos==1.5.8
  googledrivedownloader==0.3
  graph-nets==1.0.3
  graphviz==0.10.1
  greenlet==0.4.15
  grpcio==1.15.0
  gspread==3.0.1
  gspread-dataframe==3.0.2
  gunicorn==19.9.0
  gym==0.10.11
  h5py==2.8.0
  HeapDict==1.0.0
  holidays==0.9.9
  html5lib==1.0.1
  httpimport==0.5.16
  httplib2==0.11.3
  humanize==0.5.1
  hyperopt==0.1.2
  ideep4py==2.0.0.post3
  idna==2.6
  image==1.5.27
  imageio==2.4.1
  imagesize==1.1.0
  imbalanced-learn==0.4.3
  imblearn==0.0
  imgaug==0.2.8
  imutils==0.5.2
  inflect==2.1.0
  intel-openmp==2019.0
  intervaltree==2.1.0
  ipykernel==4.6.1
  ipython==5.5.0
  ipython-genutils==0.2.0
  ipython-sql==0.3.9
  ipywidgets==7.4.2
  itsdangerous==1.1.0
  jdcal==1.4
  jedi==0.13.3
  jieba==0.39
  Jinja2==2.10
  jmespath==0.9.4
  joblib==0.12.5
  jpeg4py==0.1.4
  jsonschema==2.6.0
  jupyter==1.0.0
  jupyter-client==5.2.4
  jupyter-console==6.0.0
  jupyter-core==4.4.0
  kaggle==1.5.3
  kapre==0.1.3.1
  Keras==2.2.4
  Keras-Applications==1.0.7
  Keras-Preprocessing==1.0.9
  keras-vis==0.4.1
  kiwisolver==1.0.1
  knnimpute==0.1.0
  librosa==0.6.3
  lightgbm==2.2.3
  llvmlite==0.27.1
  lmdb==0.94
  lucid==0.3.8
  lunardate==0.2.0
  lxml==4.2.6
  magenta==0.3.19
  Markdown==3.0.1
  MarkupSafe==1.1.1
  matplotlib==3.0.3
  matplotlib-venn==0.11.5
  mesh-tensorflow==0.0.5
  mido==1.2.6
  mir-eval==0.5
  missingno==0.4.1
  mistune==0.8.4
  mkl==2019.0
  mlxtend==0.14.0
  mock==2.0.0
  more-itertools==6.0.0
  moviepy==0.2.3.5
  mpi4py==3.0.1
  mpmath==1.1.0
  msgpack==0.5.6
  msgpack-numpy==0.4.3.2
  multiprocess==0.70.7
  multitasking==0.0.7
  murmurhash==1.0.2
  music21==5.5.0
  natsort==5.5.0
  nbconvert==5.4.1
  nbformat==4.4.0
  networkx==2.2
  nibabel==2.3.3
  nltk==3.2.5
  nose==1.3.7
  notebook==5.2.2
  np-utils==0.5.10.0
  numba==0.40.1
  numexpr==2.6.9
  numpy==1.14.6
  nvidia-ml-py3==7.352.0
  oauth2client==4.1.3
  oauthlib==3.0.1
  okgrade==0.4.3
  olefile==0.46
  opencv-contrib-python==3.4.3.18
  opencv-python==3.4.5.20
  openpyxl==2.5.9
  osqp==0.5.0
  packaging==19.0
  pandas==0.22.0
  pandas-datareader==0.7.0
  pandas-gbq==0.4.1
  pandas-profiling==1.4.1
  pandocfilters==1.4.2
  parso==0.3.4
  pathlib==1.0.1
  patsy==0.5.1
  pbr==5.1.3
  pexpect==4.6.0
  pickleshare==0.7.5
  Pillow==4.1.1
  pip-tools==3.4.0
  plac==0.9.6
  plotly==3.6.1
  pluggy==0.7.1
  portpicker==1.2.0
  prefetch-generator==1.0.1
  preshed==2.0.1
  pretty-midi==0.2.8
  prettytable==0.7.2
  progressbar2==3.38.0
  prometheus-client==0.6.0
  promise==2.2.1
  prompt-toolkit==1.0.15
  protobuf==3.6.1
  psutil==5.4.8
  psycopg2==2.7.6.1
  ptyprocess==0.6.0
  py==1.8.0
  pyasn1==0.4.5
  pyasn1-modules==0.2.4
  pycocotools==2.0.0
  pycparser==2.19
  pydot==1.3.0
  pydot-ng==2.0.0
  pydotplus==2.0.2
  pyemd==0.5.1
  pyglet==1.3.2
  Pygments==2.1.3
  pygobject==3.26.1
  pymc3==3.6
  pymongo==3.7.2
  pymystem3==0.2.0
  PyOpenGL==3.1.0
  pyparsing==2.3.1
  pyrsistent==0.14.11
  pysndfile==1.3.2
  PySocks==1.6.8
  pystache==0.5.4
  pystan==2.18.1.0
  pytest==3.6.4
  python-apt==1.6.3+ubuntu1
  python-chess==0.23.11
  python-dateutil==2.5.3
  python-louvain==0.13
  python-rtmidi==1.2.1
  python-slugify==3.0.0
  python-utils==2.3.0
  pytz==2018.9
  PyWavelets==1.0.2
  PyYAML==3.13
  pyzmq==17.0.0
  qtconsole==4.4.3
  regex==2018.1.10
  requests==2.18.4
  requests-oauthlib==1.2.0
  resampy==0.2.1
  retrying==1.3.3
  rpy2==2.9.5
  rsa==4.0
  s3fs==0.2.0
  s3transfer==0.2.0
  scikit-image==0.13.1
  scikit-learn==0.20.3
  scipy==1.1.0
  screen-resolution-extra==0.0.0
  scs==2.0.2
  seaborn==0.7.1
  Send2Trash==1.5.0
  setuptools-git==1.2
  Shapely==1.6.4.post2
  simplegeneric==0.8.1
  six==1.11.0
  sklearn==0.0
  smart-open==1.8.0
  snowballstemmer==1.2.1
  sortedcontainers==2.1.0
  spacy==2.0.18
  Sphinx==1.8.4
  sphinxcontrib-websupport==1.1.0
  SQLAlchemy==1.2.18
  sqlparse==0.2.4
  stable-baselines==2.2.1
  statsmodels==0.8.0
  sympy==1.1.1
  tables==3.4.4
  tabulate==0.8.3
  tblib==1.3.2
  tensor2tensor==1.11.0
  tensorboard==1.13.0
  tensorboardcolab==0.0.22
  tensorflow==1.13.1
  tensorflow-estimator==1.13.0
  tensorflow-hub==0.3.0
  tensorflow-metadata==0.12.1
  tensorflow-probability==0.6.0
  termcolor==1.1.0
  terminado==0.8.1
  testpath==0.4.2
  text-unidecode==1.2
  textblob==0.15.3
  textgenrnn==1.4.1
  tfds-nightly==1.0.1.dev201903040105
  tflearn==0.3.2
  Theano==1.0.4
  thinc==6.12.1
  toolz==0.9.0
  torch==1.0.1.post2
  torchsummary==1.5.1
  torchtext==0.3.1
  torchvision==0.2.2.post3
  tornado==4.5.3
  tqdm==4.28.1
  traitlets==4.3.2
  tweepy==3.6.0
  typing==3.6.6
  tzlocal==1.5.1
  ujson==1.35
  umap-learn==0.3.7
  uritemplate==3.0.0
  urllib3==1.22
  vega-datasets==0.7.0
  wcwidth==0.1.7
  webencodings==0.5.1
  Werkzeug==0.14.1
  widgetsnbextension==3.4.2
  wordcloud==1.5.0
  wrapt==1.10.11
  xarray==0.11.3
  xgboost==0.7.post4
  xkit==0.0.0
  xlrd==1.1.0
  xlwt==1.3.0
  yellowbrick==0.9.1
  zict==0.1.3
  zmq==0.0.0

Phew! Whoa! Jeez!

That’s every machine learning, statistics, visualization, and web/html oriented package I’ve ever used, read about, and heard of – plus more! This is no MiniConda :-p

It’s amazing, but you know once you go to update a package, things will start shifting: depedencies will be upgraded and downgraded. So, be wary.

Isn’t TensorFlow on version 2.0? When I try to update TensorFlow, it basically tells me everything is up to date:

!pip install tensorflow --upgrade

However, I was able to pip install the GPU version of TensorFlow, despite not using GPU hardware:

!pip install tensorflow-gpu

That might make you wonder:

  • what is my runtime environment?
  • what version of Python am I using
  • does my JNB have access to a GPU?

To answer these questions, click on the “Runtime” dropdown in your Colab notebook. You can reset your environment, choose what version of Python you want, and even choose whether you want to use GPUs or TPUs. All for free. Pretty crazy.

Some Refs

  • https://research.google.com/seedbank/
    • Really want to get to working through a bunch of these, then transforming them into new projects
  • https://www.youtube.com/playlist?list=PLQY2H8rRoyvwLbzbnKJ59NkZvQAW9wLbx
    • Also want to keep going through this playslist!
Written on March 14, 2019