Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта
Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта

Не будьте хорошим программистом: формируйте свою программистскую жизнь в эпоху искусственного интеллекта

В мире программистов число 1024 — это не только двоичный символ, но и самое привычное «целое число» в сердцах наших технических людей. Каждый год 24 октября программисты используют это как возможность подвести итоги роста и достижений прошлого года. В этом году, в День 1024 программиста, мы положили начало энергичному развитию технологии искусственного интеллекта, которая глубоко повлияла на наши методы программирования, мышление и будущее.

image-20241020211401814
image-20241020211401814

1. Воспользуйтесь преимуществами ИИ, чтобы написать потрясающий «код».

Благодаря постоянному развитию технологий искусственного интеллекта, особенно выпуску видеомодели Vincent Sora и мощной аудиосистемы GPT-4o, наша работа по разработке привела к беспрецедентным изменениям. Как разработчик, я глубоко ощущаю огромный потенциал ИИ в повышении эффективности работы. Используя GPT-4o для генерации и оптимизации кода, я могу не только быстрее выполнять задачи, но и получать новые идеи и вдохновение при решении сложных задач.

Например, в одном из моих недавних проектов нам нужно было реализовать систему обработки звука в реальном времени. Изначально я потратил много времени на поиск решений в документации и примерах кода. Однако когда я решил перейти на GPT-4o, дело приняло другой оборот. Благодаря простому описанию я получил полную структуру кода и на основе этого скорректировал и оптимизировал ее. Этот опыт заставил меня осознать, что ИИ может не только повысить эффективность нашей работы, но и помочь нам найти направление в океане технологий. Ниже я специально закодировал оригинальную технологию, исходя из своих потребностей и кода GPT-4o. , ниже.

Внедрение системы обработки звука в реальном времени.

При реализации системы обработки звука в реальном времени,Сначала нам нужно выбрать подходящую аудиотеку. В этом примере,я использовалPythonизpyaudioБиблиотека для захвата и обработки аудиопотоков,объединенные одновременноnumpyБиблиотекаобрабатывать аудиоданныеизиметь дело с。

image-20241020211531829
image-20241020211531829

Вот базовый скелет кода, который я сгенерировал с помощью GPT-4o:

1. Установите необходимые библиотеки.

Убедитесь, что вы установилиpyaudioиnumpyБиблиотека。Если еще не установлен,Можно использовать следующие команды:

Язык кода:bash
копировать
pip install pyaudio numpy

2. Код обработки звука в реальном времени.

Вот полный пример кода, реализующий обработку звука в реальном времени:

Язык кода:python
кодКоличество запусков:0
копировать
import pyaudio
import numpy as np

# Установить параметры звука
FORMAT = pyaudio.paInt16  # аудиоформат
CHANNELS = 1               # мононуклеоз
RATE = 44100               # Частота выборки
CHUNK = 1024               # Размер каждого аудиофрагмента

# Создать объект PyAudio
p = pyaudio.PyAudio()

# Открыть аудиопоток
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("Начать обработку звука...")

try:
    while True:
        # Чтение данных из аудиопотока
        data = stream.read(CHUNK)
        # Преобразование байтовых данных в массив numpy
        audio_data = np.frombuffer(data, dtype=np.int16)

        # Выполните простую обработку звука. Вот пример расчета среднеквадратического значения (RMS) звука.
        rms = np.sqrt(np.mean(np.square(audio_data)))
        print(f"Текущее среднеквадратическое значение аудио: {rms:.2f}")

except KeyboardInterrupt:
    print("Остановить обработку звука...")

finally:
    # Остановить и закрыть потоки
    stream.stop_stream()
    stream.close()
    p.terminate()

3. Анализ кода

В этом примере,наспервый ИмпортированоpyaudioиnumpyБиблиотека,и установите параметры звука. Затем,проходитьPyAudioОбъект открывает входной аудиопоток。в цикле,Продолжаем читать аудиоданные,и использоватьnumpyобработать это。В этом примере,Мы рассчитали среднеквадратичное значение (RMS) аудиосигнала.,Это может помочь нам понять интенсивность звука.

image-20241020211555069
image-20241020211555069

4. Расширенные функции

Этот код можно использовать в качестве основы для обработки звука в реальном времени, а затем расширить дополнительные функции в соответствии с потребностями проекта, например:

  • Добавьте звуковые эффекты (например, реверберацию, эхо и т. д.).
  • Сохраните обработанный звук в файл.
  • Включите аудиовизуализацию в реальном времени.

Используя GPT-4o, я смог быстро сгенерировать структуру кода и внести необходимые изменения, что значительно повысило эффективность разработки. Разработка этой системы обработки звука в реальном времени не только позволила мне осознать мощь искусственного интеллекта, но и расширила мое понимание обработки звука на практике.

2. Ежегодные практические случаи «кода» крупного рогатого скота.

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

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

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

Реализация приложения для распознавания изображений на основе машинного обучения

В процессе разработки этого приложения для распознавания изображений мы использовали TensorFlow и Keras, две популярные платформы глубокого обучения. Используя их мощные функции и поддержку сообщества, мы можем быстро создавать и обучать модели классификации изображений.

image-20241020211634033
image-20241020211634033

1. Подготовка данных

Чтобы повысить точность модели,Мы получили общедоступные наборы данных с платформ с открытым исходным кодом, таких как Kaggle.,в то же времяиспользовать Методы увеличения данных для масштабированиянасизобучающий набор。насиспользоватьImageDataGeneratorдля улучшения данных,Увеличивайте разнообразие изображений.

Язык кода:python
кодКоличество запусков:0
копировать
from tensorflow.keras.preprocessing.image import ImageDataGenerator

# Создайте генератор дополнения данных
train_datagen = ImageDataGenerator(
    rescale=1./255,           # нормализация
    rotation_range=40,        # случайное вращение
    width_shift_range=0.2,    # горизонтальная панорама
    height_shift_range=0.2,   # Вертикальный перевод
    shear_range=0.2,          # резать
    zoom_range=0.2,           # Увеличить
    horizontal_flip=True,      # Случайно перевернуть
    fill_mode='nearest'       # стратегия заполнения
)

# Создать обучающий набор
train_generator = train_datagen.flow_from_directory(
    'data/train',             # Каталог обучающих наборов
    target_size=(150, 150),  # целевой размер изображения
    batch_size=32,
    class_mode='binary'       # Две категории
)

2. Построение модели

При построении модели мы решили использовать сверточную нейронную сеть (CNN), поскольку она хорошо справляется с задачами классификации изображений. Вот пример модели, которую мы построили:

Язык кода:python
кодКоличество запусков:0
копировать
from tensorflow.keras import layers, models

# Постройте модель сверточной нейронной сети
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D(2, 2),
    
    layers.Flatten(),
    layers.Dense(512, activation='relu'),
    layers.Dense(1, activation='sigmoid')  # Две категории
])

# Скомпилировать модель
model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

3. Модельное обучение

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

Язык кода:python
кодКоличество запусков:0
копировать
# Модель обучения
history = model.fit(
    train_generator,
    steps_per_epoch=100,  # Количество шагов за эпоху
    epochs=15,             # Количество эпох обучения
    verbose=1
)

4. Оценка результатов

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

Язык кода:python
кодКоличество запусков:0
копировать
import matplotlib.pyplot as plt

# Точность графика и потери во время обучения
plt.plot(history.history['accuracy'], label='Точность обучения')
plt.plot(history.history['loss'], label='потеря обучения')
plt.title('Модельное обучениепроцесс')
plt.xlabel('Epoch')
plt.ylabel('точность/потеря')
plt.legend()
plt.show()
image-20241020211647179
image-20241020211647179

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

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

3. «Программировать жизнь» может быть проще простого, не будучи мастером.

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

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

Установите хорошие привычки в учебе и планировании карьеры.

На протяжении всей своей карьеры я глубоко осознавал важность непрерывного обучения и самосовершенствования. Как разработчикам, сталкивающимся с быстро меняющейся технической средой, хорошие навыки обучения и планирование карьеры могут помочь нам выделиться среди конкурентов. Вот несколько эффективных стратегий, которые я суммировал для вашего удобства.

1. Составьте план обучения

первый,Крайне важно иметь четкий план обучения. Будь то изучение нового языка программирования, фреймворка или алгоритма.,Предварительное планирование может помочь нам эффективно использовать наше время. Рекомендуется уделять изучению хотя бы несколько часов в неделю.,Объедините онлайн-курсы, книги и практические проекты. например,Я недавно училсяGoязык,Запланируйте закрепить полученные знания, выполнив небольшой проект.

Пример плана обучения
  • первая неделя:учитьсяGoязыкбазовая грамматика,Пройдите соответствующие онлайн-курсы.
  • вторая неделя:реализовать простойизRESTful API, HTTP-пакет приложения и обработка маршрутизации.
  • Неделя 3:Изучите и внедрите сохранение данных,использоватьGormвыполнять данные Библиотекадействовать。
  • Неделя 4:оптимизациякодструктура,И попробуйте использовать функции параллелизма Go для повышения производительности.

2. Активно участвовать в проектах с открытым исходным кодом.

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

3. Участвовать в обмене технологиями и мероприятиях по обмену технологиями.

Как упоминалось ранее, регулярное участие в сессиях по обмену технологиями — это важный способ улучшить свои собственные возможности. В этих мероприятиях мы можем не только изучить новые технологии, но и найти друзей-единомышленников. Рекомендуется найти местные технологические сообщества или посетить технологические онлайн-конференции, чтобы поделиться собственным опытом и усвоить идеи других.

4. Накопить проектный опыт

Обучение на практике — лучший способ улучшить свои навыки программирования. Я рекомендую каждому разработчику попробовать реализовать несколько личных проектов. Этими проектами могут быть приложения, веб-сайты или инструменты, предназначенные для решения конкретной проблемы. Благодаря проектной практике мы можем применить полученные знания в реальных сценариях, обнаружить собственные недостатки и улучшить их.

Примеры проектов
  • Инструменты обработки изображений:использоватьPythonиOpenCVБиблиотека,Разработать приложение для фильтрации изображений,Поддержка пользовательских эффектов фильтра.
  • Система личного блога:использоватьFlaskилиDjangoрамка,Создайте простой сайт личного блога,Поддерживает функции публикации и комментирования статей в формате Markdown.
  • Приложение для запроса погоды в режиме реального времени:использоватьAPIПолучить данные о погоде,Разработать фронтенд-приложение,Отображает информацию о погоде в реальном времени для города пользователя.

5. Постоянно внедряйте новые технологии.

С появлением новых технологий, таких как искусственный интеллект и блокчейн,,мы должны сохранять непредвзятость,Возьмите на себя инициативу изучить эти методы. Посещайте соответствующие онлайн-курсы и семинары.,или читая профессиональные книги и литературу,Будьте чувствительны к новым технологиям. Например,Недавно я начал исследоватьTensorFlow,Надеюсь применить это в проектах машинного обучения.

6. Планирование карьеры

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

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

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

image-20241020211946228
image-20241020211946228

Сообщение

1024 День программиста – день, достойный нашего празднования. В этот особый момент давайте вместе рассмотрим прошлые достижения и проблемы и с нетерпением ждем безграничных возможностей будущего. Давайте продолжим писать больше «кода» на пути развития технологий, не будем дураками и встретим следующее десятилетие с большим энтузиазмом и смелостью!

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.