ktv6

Untitled

Sep 16th, 2020
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.55 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """Добро пожаловать в Colaboratory!
  3.  
  4. Automatically generated by Colaboratory.
  5.  
  6. Original file is located at
  7.    https://colab.research.google.com/notebooks/intro.ipynb
  8.  
  9. <p><img alt="Colaboratory logo" height="45px" src="/img/colab_favicon.ico" align="left" hspace="10px" vspace="0px"></p>
  10.  
  11. <h1>Что такое Colaboratory?</h1>
  12.  
  13. Colaboratory, или просто Colab, позволяет писать и выполнять код Python в браузере. При этом:
  14. - не требуется никакой настройки;
  15. - вы получаете бесплатный доступ к графическим процессорам;
  16. - предоставлять доступ к документам другим людям очень просто.
  17.  
  18. Это отличное решение для <strong>студентов</strong>, <strong>специалистов по обработке данных</strong> и <strong>исследователей в области искусственного интеллекта</strong>. Чтобы узнать больше, посмотрите <a href="https://www.youtube.com/watch?v=inN8seMm7UI">ознакомительное видео</a> или начните работу с инструментом ниже.
  19.  
  20. ## <strong>Начало работы</strong>
  21.  
  22. Документ, который вы читаете, размещен не на статической веб-странице, а в интерактивной среде под названием <strong>блокнот Colab</strong>, позволяющей писать и выполнять код.
  23.  
  24. Например, вот <strong>ячейка</strong> с коротким скриптом Python, который позволяет рассчитать значение, выразить его в виде переменной и распечатать результат:
  25. """
  26.  
  27. seconds_in_a_day = 24 * 60 * 60
  28. seconds_in_a_day
  29.  
  30. """Чтобы выполнить код в ячейке выше, выберите ее, а затем нажмите кнопку воспроизведения слева от кода или используйте сочетание клавиш Cmd/Ctrl + Ввод. Чтобы изменить код, достаточно нажать на ячейку.
  31.  
  32. Переменные, заданные в одной ячейке, можно будет использовать в других ячейках:
  33. """
  34.  
  35. seconds_in_a_week = 7 * seconds_in_a_day
  36. seconds_in_a_week
  37.  
  38. """Благодаря блокнотам Colab вы можете использовать в одном документе <strong>исполняемый код</strong>, <strong>форматированный текст</strong>, <strong>изображения</strong>, <strong>разметку HTML</strong>, <strong>набор LaTeX</strong> и не только. Блокноты Colab будут храниться на вашем Google Диске. Вы сможете открыть к ним доступ коллегам или друзьям, разрешив им просматривать или даже редактировать документ, а также оставлять комментарии. Подробная информация доступна на <a href="/notebooks/basic_features_overview.ipynb">этой странице</a>. Чтобы создать блокнот Colab, можно воспользоваться меню "Файл" выше или <a href="http://colab.research.google.com#create=true">перейти по этой ссылке</a>.
  39.  
  40. Блокноты Colab – это блокноты Jupyter, которые размещены в сервисе Colab. Подробная информация о проекте Jupyter доступна на сайте <a href="https://www.jupyter.org">jupyter.org</a>.
  41.  
  42. ## Анализ и обработка данных
  43.  
  44. Colab позволяет использовать для анализа и визуализации данных все возможности популярных библиотек Python. Например, в ячейке ниже используется библиотека <strong>numpy</strong> для генерации случайных данных, а также библиотека <strong>matplotlib</strong> для их визуализации. Чтобы изменить код, достаточно нажать на ячейку.
  45. """
  46.  
  47. import numpy as np
  48. from matplotlib import pyplot as plt
  49.  
  50. ys = 200 + np.random.randn(100)
  51. x = [x for x in range(len(ys))]
  52.  
  53. plt.plot(x, ys, '-')
  54. plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)
  55.  
  56. plt.title("Sample Visualization")
  57. plt.show()
  58.  
  59. """Вы можете импортировать в блокноты Colab данные из своего аккаунта Google Диска, в том числе из таблиц, а также из GitHub и многих других источников. Чтобы узнать больше об импорте данных и о том, как можно использовать Colab для их анализа и обработки, изучите ссылки в разделе <a href="#working-with-data">Работа с данными</a>.
  60.  
  61. ## Машинное обучение
  62.  
  63. В Colab вы можете импортировать набор данных изображения, сориентировать на него классификатор изображений и оценить модель с помощью <a href="https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/quickstart/beginner.ipynb">нескольких строк кода</a>. Код в блокнотах Colab исполняется на облачных серверах Google. Это означает, что вы можете использовать аппаратное обеспечение Google, <a href="#using-accelerated-hardware">в том числе графические процессоры и TPU</a>, независимо от мощности вашей машины. Вам нужен только браузер.
  64.  
  65. Colab активно используется в области машинного обучения, в том числе для:
  66. - знакомства с TensorFlow;
  67. - разработки и обучения нейронных сетей;
  68. - экспериментов с TPU;
  69. - распространения исследований в области ИИ;
  70. - создания руководств.
  71.  
  72. Примеры использования блокнотов Colab в сфере машинного обучения приведены в разделе <a href="#machine-learning-examples">Примеры использования в машинном обучении</a> ниже.
  73.  
  74. ## Ресурсы по теме
  75.  
  76. ### Работа с блокнотами в Colab
  77. - [Общие сведения о Colaboratory](/notebooks/basic_features_overview.ipynb)
  78. - [Руководство для Markdown](/notebooks/markdown_guide.ipynb)
  79. - [Импорт библиотек и установка зависимостей](/notebooks/snippets/importing_libraries.ipynb)
  80. - [Сохранение и загрузка блокнотов в GitHub](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb)
  81. - [Интерактивные формы](/notebooks/forms.ipynb)
  82. - [Интерактивные виджеты](/notebooks/widgets.ipynb)
  83. - <img src="/img/new.png" height="20px" align="left" hspace="4px" alt="New"></img>
  84. [TensorFlow 2 в Colab](/notebooks/tensorflow_version.ipynb)
  85.  
  86. <a name="working-with-data"></a>
  87. ### Работа с данными
  88. - [Загрузка данных: Диск, Таблицы и Google Cloud Storage](/notebooks/io.ipynb)
  89. - [Диаграмма: визуализация данных](/notebooks/charts.ipynb)
  90. - [Начало работы с BigQuery](/notebooks/bigquery.ipynb)
  91.  
  92. ### Экспресс-курс по машинному обучению
  93. Вот несколько блокнотов из онлайн-курса по машинному обучению от Google. Ещё больше информации доступно на <a href="https://developers.google.com/machine-learning/crash-course/">сайте курса</a>.
  94. - [Введение в pandas](/notebooks/mlcc/intro_to_pandas.ipynb)
  95. - [Концепции TensorFlow](/notebooks/mlcc/tensorflow_programming_concepts.ipynb)
  96. - [Начало работы с TensorFlow](/notebooks/mlcc/first_steps_with_tensor_flow.ipynb)
  97. - [Введение в нейросети](/notebooks/mlcc/intro_to_neural_nets.ipynb)
  98. - [Введение в разреженные данные и встраивания](/notebooks/mlcc/intro_to_sparse_data_and_embeddings.ipynb)
  99.  
  100. <a name="using-accelerated-hardware"></a>
  101. ### Использование ускорителей
  102. - [TensorFlow с графическими процессорами](/notebooks/gpu.ipynb)
  103. - [TensorFlow с TPU](/notebooks/tpu.ipynb)
  104.  
  105. <a name="machine-learning-examples"></a>
  106.  
  107. ## Примеры использования в машинном обучении
  108.  
  109. Подробные примеры интерактивного анализа, выполняемого с помощью машинного обучения и доступного благодаря платформе Colaboratory, можно найти в этих руководствах. В них используются модели с сайта <a href="https://tfhub.dev">TensorFlow Hub</a>.
  110.  
  111. Несколько примеров:
  112.  
  113. - <a href="https://tensorflow.org/hub/tutorials/tf2_image_retraining">Обучение классификатора изображений</a>. Используя предварительно обученный классификатор изображений, создайте модель Keras для распознавания цветов.
  114. - <a href="https://tensorflow.org/hub/tutorials/tf2_text_classification">Классификация текста</a>. Разделите отзывы на сайте IMDb на <em>положительные</em> и <em>отрицательные</em>.
  115. - <a href="https://tensorflow.org/hub/tutorials/tf2_arbitrary_image_stylization">Перенос стиля</a>. Используйте модель глубокого обучения, чтобы переносить стиль с одного изображения на другое.
  116. - <a href="https://tensorflow.org/hub/tutorials/retrieval_with_tf_hub_universal_encoder_qa">Вопросно-ответный универсальный многоязычный кодировщик</a>. Используйте модель машинного обучения, чтобы отвечать на вопросы из набора данных SQuAD.
  117. - <a href="https://tensorflow.org/hub/tutorials/tweening_conv3d">Интерполяция видео.</a> Спрогнозируйте, что произошло между первым и последним кадрами видео.
  118. """
  119.  
  120. import numpy as np
  121. import matplotlib.pyplot as plt
  122.  
  123. x = np.arange(0, np.pi, 0.01)
  124. x = np.array(x)
  125.  
  126. y = np.zeros(shape=len(x), dtype='float')
  127.  
  128. for i in range(len(x)):
  129.   if x[i] < np.pi / 4:
  130.     y[i] = x[i]
  131.   elif x[i] < np.pi / 2:
  132.     y[i] = -x[i] + np.pi / 2
  133.   else:
  134.     y[i] = 0.
  135.  
  136.  
  137. plt.plot(x, y)
  138.  
  139. x = np.arange(0, 4 * np.pi, 0.01)
  140. x = np.array(x)
  141.  
  142. y = np.zeros(shape=len(x), dtype='float')
  143.  
  144. # for i in range(len(x)):
  145. #   if x[i] < np.pi / 4:
  146. #     y[i] = x[i]
  147. #   elif x[i] < 3 * np.pi / 4:
  148. #     y[i] = -x[i] + np.pi / 2
  149. #   else:
  150. #     y[i] = x[i] - np.pi
  151.  
  152. y = np.sin(10.0 * 2.0 * np.pi * x) + 0.5*np.sin(5.0 * 2.0*np.pi*x)
  153.  
  154. plt.plot(x, y)
  155.  
  156. from scipy.fft import fft
  157.  
  158. N = len(x)
  159. T = 1.0 / 800.
  160.  
  161. yf = fft(y)
  162. xf = np.linspace(0.0, 1.0/(2.0 * T), N//2)
  163. plt.plot(xf, 1.0/N * np.abs(yf[0:N//2]))
  164. plt.grid()
  165.  
  166. y_a = 1. / N * np.abs(yf[0:N//2])
  167. print(np.max(y_a))
  168.  
  169. from scipy.fft import fft
  170. # Number of sample points
  171. N = 600 * np.pi
  172. # sample spacing
  173. T = 1.0 / 800.0
  174. x = np.linspace(0.0, N*T, N)
  175. print(np.max(x))
  176. # y = np.sin(150.0 * 2.0*np.pi*x) + 0.5*np.sin(80.0 * 2.0*np.pi*x)
  177.  
  178. for i in range(len(x)):
  179.   if x[i] < np.pi / 4:
  180.     y[i] = x[i]
  181.   elif x[i] < 3 * np.pi / 4:
  182.     y[i] = -x[i] + np.pi / 2
  183.   else:
  184.     y[i] = x[i] - np.pi
  185.  
  186. yf = fft(y)
  187. xf = np.linspace(0.0, 1.0/(2.0*T), N//2)
  188. import matplotlib.pyplot as plt
  189. plt.plot(xf, 2.0/N * np.abs(yf[0:N//2]))
  190. plt.grid()
  191. plt.show()
Add Comment
Please, Sign In to add comment