По случаю первого года глубокого обучения аспирантов приходите и расскажите о своих чувствах.

искусственный интеллект глубокое обучение

предисловие

Приходите и расскажите о своих чувствах перед окончанием первого года обучения в аспирантуре.

Вы можете рассматривать эту статью как короткую исповедь глубокого ученика, программиста, аспиранта. Это может быть немного многословно и немного скучно. Но если у вас есть время и интерес, вы можете прочитать ее, может быть, вы выберете из нее что-то полезное.

TIM截图20180803093805

Обсуждаемые темы:

  • выбор языка программирования
  • Как подготовиться к работе
  • Не могу вести блог

разные разговоры

По незнанию, я пришел в индустрию глубокого обучения почти год назад.Хотя проекты, которые я делал до того, как я пришел в индустрию, код, который я написал, не имеет прямого отношения к тому, что я делаю сейчас. Но исходя из моего собственного практического уровня и прошлого опыта,Хорошая основа по-прежнему очень важна.

Основу глубокого обучения можно условно разделить на три части:

  • База теоретических знаний (овладение математическими знаниями)
  • Основы программирования (C/C++/python)
  • Практическая основа (настройка окружения, отладка, поиск ответов при возникновении проблем)

Поскольку большая часть моей предыдущей работы была связана с киберспортом, основным языком, который я использовал, был C. Также участвовал в ACM, используя C++ для написания алгоритмов. Благодаря этим практикам у меня есть некоторые навыки программирования на C/C++, поэтому я очень быстро начал работать с python, а также получил некоторые базовые знания о python (рекомендуется ).

Язык Python великолепен, красив и продвинут. То, что Python может сделать за 100 строк языка C, можно сделать за 2 строки, но вы не знаете, что язык C на самом деле выполняется за 2 строки кода в Python. ядро, фактический язык C по-прежнему называется, но вы не можете его увидеть или потрогать.

Хоть и порог входа глубокого обучения, но приложив немного усилий, за этой дверью дорога в будущее станет намного проще:Статья для решения вопросов машинного обучения и глубокого обучения..

Большинство языков программирования распространены, и если вы хорошо владеете одним из них, вы можете начать с других языков.

Чем больше вы соприкасаетесь с языками программирования, тем больше вы понимаете эту истину Будь то динамический язык, статический язык, интерпретируемый язык или компилируемый язык, они, как правило, совместимы. Все они имеют примерно одинаковые типы данных, примерно одинаковые структуры процессов и многие ключевые слова одинаковы.

Первым языком программирования, который мы выучили на бакалавриате, должен бытьCязык. В то время Тань Хаоцян, краснокожая книга на человека, не говоря уже об оценке этой книги, как минимум привела нас в ворота программирования. Честно говоря, хорошее изучение языка C приносит большую пользу. По сей день стандарт C99 для C так же стабилен, как и прежде, и C по-прежнему везде.

У каждого языка программирования есть дом

С тех пор, как я поступил в аспирантуру, у меня было меньше возможностей писать на C, в основном просто глядя на него. Столкнувшись с языком, с которым я был очень знаком, кажется, что я много незнаком. Я беспокоюсь, что я «забуду» его вот так, поэтому я думаю о том, чтобы использовать его, написать что-то небрежно и заставить его работать. .

Но я все же обнаружил, что язык C не подходит для моего проекта на тот момент, и форсировать его было невозможно. Так же, как раньше я слепо верил, что python — лучший язык в мире (2333, а не php). Когда-то я думал, что python может все, но проигнорировал важный момент,Первоначальный замысел дизайна языка программирования.

Перевернул историю языка C. Цель разработки языка C состоит в том, чтобы предоставить язык программирования, который можно было бы легко скомпилировать, обрабатывать низкоуровневую память, генерировать небольшой объем машинного кода и работать без какой-либо поддержки во время выполнения.В основном используется для низкоуровневой разработки. Что касается Python, то разработчик Python Гвидо ван Россум разработал его на основе языка ABC.И изначальное предназначение этого языка — служить тем, кто не является программистом.. Неудивительно, что язык Python так сильно похож на псевдокод.

Итак, перед лицом разных проектов выберите другой язык программирования, например, для меня:

  • Python: в основном используется для написания кода глубокого обучения, использования библиотек Tensorflow и Pytorch для реализации ваших собственных идей, конечно, Python также может делать другие вещи, а также использовать Python для создания фона веб-сайта (Django).
  • C/C++: вам следует лучше познакомиться с языком C, потому что язык C очень чист и чист. Хотя он не поддерживает прямые функции класса, это недостаток, но его основные характеристики по-прежнему не имеют себе равных. подробнее в статье Напишите код алгоритма узкого места. И C++ для меня немного раздут, и стандарт слишком быстро обновляется, но ведь он родственен C и трактуется одинаково.
  • JavaScript: Еще один скриптовый язык, но, на мой взгляд, JS тоже начал развиваться для больших проектов, и разные стандарты появляются один за другим, каждый год делается драфт, и взаимные вызовы между модулями становятся все более жесткими. Обычно я использую его, чтобы играть в браузере и создавать собственные гаджеты.

Есть также некоторые языки, которые также подвергалисьluaиphp, илиC#,luaдля быстрого стартаtorch,phpЭто для создания этого блога с wordpress в качестве бэкэнда.C#Это использование VS для создания хост-компьютера WPF.luaМаленький и мощный очень близок к языку C. Сам PHP его не очень любит.Читал чисто для WordPress.C#Прочитав ее в течение полугода, она очень полезна во всех аспектах, но вам нужно полностью понять концепцию, что все является объектом.

Энергия человека ограничена, освоить язык программирования пока сложно. Так что я завидую тем, кто может говорить на нескольких языках.Если все могут так хорошо учиться, почему мы не можем освоить несколько языков программирования?

Давайте учить больше языков

Многие люди говорят, что знание одного языка полезнее, чем изучение нескольких языков.Это предложение разумно, но в моих реальных проектах больше языков программирования идут рука об руку, и один язык съедает до смерти.Все же относительно немного.

Почему, собственно, в работе чаще встречается кросс-компиляция, а когда речь идет о проектах, то вообще нецелесообразно использовать только один язык. Большинству из них необходимо совмещать специальности разных языков. Когда вы заполните свое дерево навыков, вы сможете легко встретить разных монстров.

с использованиемPytorchПри построении некоторых алгоритмов глубокого обучения в этой среде глубокого обучения мы используемpyyhonЧтобы написать основную программу, но если вы столкнетесь с узким местом, некоторые требования к скорости алгоритма используют толькоpythonЕсли письменности недостаточно, то нужен C/C++. Кроме того, необходимо научиться изучать cuda.

Но есть один язык, который нужно выучить.

Сегодня IEEE Spectrum опубликовал пятое место в рейтинге взаимодействия языков программирования: Python успешно защитил свой титул, C++ вышел и занял второе место.

微信图片_20180803094322

Вы могли бы выразить это так,PythonНезависимо от того, идет ли речь о поиске работы, проектах с открытым исходным кодом или индивидуальных проектах, можно сказать, что он очень силен.Нет необходимости говорить больше о преимуществах Python.Изучение Python и хорошее выполнение задач – это последнее слово.

Подводя итог, предлагаемые языки для изучения:С/С++, Python и JS.

хорошие привычки

Хорошая привычка, о которой я хочу здесь поговорить, не относится к раннему укладыванию спать и раннему вставанию.Я не буду слишком много комментировать эту привычку ко сну.У каждого есть своя привычка. А я тоже контрпример.Я обычно сплю больше часа и просыпаюсь около 8 утра.Это действительно нехорошо.Не следуйте за мной.

Что я хочу сказать, так это то, что в процессе написания кода я сделал все проверки, которые можно было сделать, не слишком утруждайте себя, вы должны использоватьassertНе думайте, что это портит красоту кода, лучше пишите комментарии, они должны быть.logСразуlogда,gitСразуgit, иначе это очень повлияет на эффективность при отладке.

Я сильно страдал от этого.

Должен ли я вести блог

Это должен быть общий вопрос.Однажды старый друг пришел уговаривать меня изучить блог и проговорил всю ночь.В то время я был почти тронут...Мне действительно нужно хорошенько подумать о ведении блога.Есть много людей,которые обращаются к блогам вокруг меня, не более чем всего два:

  • Преподаватель уговорил Жибо и пообещал закончить, потому что его специальность была теоретической, а потом он почувствовал, что не знает, что делать, когда выйдет аспирантом, поэтому просто проучился еще несколько лет.
  • У меня есть идея, и я хочу заняться исследованиями, но я чувствую, что трех лет обучения в аспирантуре недостаточно, и мне нужно время врача, чтобы продолжать это делать.

Действительно, если то, что вы хотите изучить, окажется ненадежным в течение года или двух, почему бы не попробовать получить докторскую степень.

Потому что, когда вы работаете, то, что вы хотите делать, на самом деле сильно отличается от того, что просит вас сделать ваш босс.

Можете ли вы пойти в блог или нет, это не ваше личное дело, спросите свою семью, спросите свою девушку и посмотрите, поддержат ли они вас, и тогда, конечно, в конце концов, это зависит от вас.

проект? Работа?

Если вы искали работу и занимались проектами с исследовательским мышлением, то я хотел бы сказать: то, что вы хотите, и то, что хотят другие, могут сильно отличаться.

Раньше был проект, и я хотел использоватьPythonписать, сGPUПриходите и бегите, слишком много думаете, люди просят использоватьC++писать, сCPUПриходите и бегите, вы думаете, что у всех есть GPU, проект более реалистичен, а фактическое размещение — последнее слово, потому что люди, которые используют ваш продукт, могут не обязательно иметь GPU.

Если сосредоточиться на научных исследованиях, то проект будет совсем другим миром.Разница между ними все равно очень большая, и у каждого есть свои сильные и слабые стороны.Некоторые люди говорят, что теория сложная, а некоторые говорят, что сам проект сложный.Это действительно сложно сказать.Только сочетание теории и практики самое лучшее.

Ищу работу в области алгоритмов, язык C++/C по-прежнему является панацеей, и ничего нельзя игнорировать.

постскриптум

Просто расскажите о своих чувствах, я надеюсь помочь всем.

Несколько дней не писал в блог и нашел истину:

Для большинства нуждающихся программистов чтение блогов — отличный опыт.

Особенно, когда смотришь на галантерею, полную знаний, свежие коды и формулы обнаженно разбросаны по аккуратным и упорядоченным страницам блоггеров, а картинки так заманчивы. Хотя мне не терпится смахнуть это содержимое вниз, средний палец на колесике мыши не может не скользнуть вниз — подождите! Любимый первый.

Но писать в блог немного хлопотно, знаний слишком много, чтобы жаловаться, а времени не хватает, так что я могу только потихоньку... Его надо заваривать, да?

Стоит потерпеть~

дразни меня

  • Если вы со мной единомышленники, Лао Пан очень хочет с вами общаться;
  • Если вам нравится контент Лао Пана, подпишитесь и поддержите его.
  • Если вам понравилась моя статья, надеюсь, она вам понравится? Избранное ? Комментарии ? Три в ряд~

Я хочу знать, как Лао Пан научился наступать на яму, и я хочу обменяться со мной вопросами ~ Пожалуйста, обратите внимание на публичный аккаунт "старый блог". Лао Пан также организует некоторые из своих частных коллекций, надеясь помочь всем, нажмитеТаинственный порталПолучать.