Search
Write a publication
Pull to refresh

Comments 31

А вот есть программа про обнаружения лица знаменитости на фотографии

import os

import numpy as np

import cv2

import matplotlib.pyplot as plt

from keras.models import Sequential, load_model

from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout



# Функция загрузки данных

def load_data(dataset_folder, image_size=(128, 128)):

    images = []

    labels = []

    celebrity_labels = []


    celebrity_folder = os.path.join(dataset_folder, 'celebrities')

    gender_folder = os.path.join(dataset_folder, 'gender')

    labeled_folder = os.path.join(dataset_folder, 'labeled')


    # Подпапки в labeled

    raw_faces_folder = os.path.join(labeled_folder, 'raw_faces')

    cropped_faces_folder = os.path.join(labeled_folder, 'cropped_faces')


    # Загружаем фотографии знаменитостей

    for label, celeb in enumerate(os.listdir(celebrity_folder)):

        celeb_path = os.path.join(celebrity_folder, celeb)

        if os.path.isdir(celeb_path):

            celebrity_labels.append(celeb)

            for img_file in os.listdir(celeb_path):

                img_path = os.path.join(celeb_path, img_file)

                img = cv2.imread(img_path)

                if img is not None:

                    img_resized = cv2.resize(img, image_size)

                    images.append(img_resized)

                    labels.append(label)


    # Загружаем фотографии по полу

    gender_map = {'men': 0, 'women': 1}

    for gender in os.listdir(gender_folder):

        gender_path = os.path.join(gender_folder, gender)

        if os.path.isdir(gender_path):

            for img_file in os.listdir(gender_path):

                img_path = os.path.join(gender_path, img_file)

                img = cv2.imread(img_path)

                if img is not None:

                    img_resized = cv2.resize(img, image_size)

                    images.append(img_resized)

                    labels.append(gender_map[gender])


    # Загружаем фотографии лиц

    for img_file in os.listdir(raw_faces_folder):

        raw_img_path = os.path.join(raw_faces_folder, img_file)

        cropped_img_path = os.path.join(cropped_faces_folder, img_file)


        raw_img = cv2.imread(raw_img_path)

        cropped_img = cv2.imread(cropped_img_path)


        if raw_img is not None and cropped_img is not None:

            raw_img_resized = cv2.resize(raw_img, image_size)

            cropped_img_resized = cv2.resize(cropped_img, (160, 160))

            images.append(raw_img_resized)

            labels.append(cropped_img_resized)


    return np.array(images), np.array(labels), celebrity_labels



# Функция создания модели

def build_model(input_shape):

    model = Sequential([

        Conv2D(32, (3, 3), activation='relu', input_shape=input_shape),

        MaxPooling2D((2, 2)),

        Conv2D(64, (3, 3), activation='relu'),

        MaxPooling2D((2, 2)),

        Flatten(),

        Dense(128, activation='relu'),

        Dropout(0.5),

        Dense(4, activation='linear')  # Выходные 4 координаты (x, y, w, h)

    ])


    model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae'])

    return model



# Функция тестирования модели

def test_model(model_path, test_dataset_folder, image_size=(128, 128)):

    model = load_model(model_path)

    test_images, test_labels, = loaddata(test_dataset_folder, image_size)


    test_images = test_images / 255.0

    test_labels = test_labels / 160.0


    loss, mae = model.evaluate(test_images, test_labels)

    print(f'Test Loss: {loss}, Test MAE: {mae}')


    # Визуализация результатов

    plt.figure()

    plt.bar(['Loss', 'MAE'], [loss, mae])

    plt.title('Результаты тестирования')

    plt.show()



# Функция предсказания знаменитости и пола

def predict_face(model_path, image_path, image_size=(128, 128)):

    model = load_model(model_path)

    img = cv2.imread(image_path)

    img_resized = cv2.resize(img, image_size) / 255.0

    img_expanded = np.expand_dims(img_resized, axis=0)


    prediction = model.predict(img_expanded)

    x, y, w, h = prediction[0] * 160


    face_cropped = img[int(y):int(y + h), int(x):int(x + w)]

    face_cropped = cv2.resize(face_cropped, (160, 160))

plt.imshow(cv2.cvtColor(face_cropped, cv2.COLOR_BGR2RGB))

    plt.title("Обрезанное лицо")

    plt.show()


    # Определение знаменитости и пола (заглушка)

    print("Определенная знаменитость: ...")

    print("Пол человека: ...")



# Главная функция

def main():

    dataset_folder = r"C:\Users\mpdym\OneDrive\Рабочий стол\Face\Celebrity Faces Dataset"  # Укажи путь к набору данных

    test_dataset_folder = r"C:\Users\mpdym\OneDrive\Рабочий стол\Face\Test Dataset"  # Укажи путь к тестовому набору

    image_size = (128, 128)


    # Загружаем обучающие данные

    images, labels, = loaddata(dataset_folder, image_size)


    # Нормализация

    images = images / 255.0

    labels = labels / 160.0  # Нормируем координаты вырезанных лиц


    # Создание модели

    input_shape = (image_size[0], image_size[1], 3)

    model = build_model(input_shape)


    # Обучение модели

    history = model.fit(images, labels, epochs=10, batch_size=32, validation_split=0.2)


    # Сохранение модели

    model.save("face_cropper.h5")


    # Тестирование модели

    test_model("face_cropper.h5", test_dataset_folder, image_size)


    # Пример предсказания на новой фотографии

    predict_face("face_cropper.h5", "test_image.jpg", image_size)



if name == 'main':

    main()

Это всё, что вы вынесли из интервью с парой невероятно умных людей?

Дык какое там отличие то? С позиции случайного пользователя: чатгпт тоже не образец ума (самым платным не пользовался), дипсик как-то особенно бодро привирает (заметить бывает непросто, наверное как-то можно теплоту настраивать, но он "висит", пользовать долго и так не получается) и про ум в его случае говорить неудобно, qwen показался где-то на уровне гемини, клодом не пользовался, может он и самый умный. Опять-таки с точки зрения случайного пользователя, все чаты неплохо пишут рандомные тексты ни о чем, но для того, чтобы получить что-то осмысленное, нужен пользователь, который понимает что он хочет получить и неплохо знает ограничения нейронок (которых много). А если сравнивать по разным подмоделям, то гемини вроде есть и флеш, и про, и спортлото...

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

Есть несколько очень важных моментов. Например,

Ноам Шазир: Ну, человек за жизнь видит около миллиарда токенов.

Джефф Дин: И при этом умеет делать массу крутых вещей.

Это говорит о том, что механическое скармливание нейросети гигабайтов информации, в несколько заходов (эпох) по кругу -- не самый эффективный метод обучения. А как правильно?

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

Например вот так. Обучаем модель на главе книги, задаём контрольные вопросы. Если ответы правильные -- идём к следующей главе. Есть неправильные -- повторяем неусвоенный материал, и по кругу.

В процессе можно задавать вопросы из предыдущих глав и контролировать запоминание.

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

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

Ещё обратил внимание, как разительно отличается эта беседа от интервью с создателем DeepSeek. Хотя тут от журналиста многое зависит: какие вопросы, такие и ответы.

UFO landed and left these words here

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

UFO landed and left these words here

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

UFO landed and left these words here

однако информацию о том, что в процессе обучения в мозгу меняется число синапсов слышу впервые.

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

UFO landed and left these words here
UFO landed and left these words here

Можно заменить в сообщении "инстинкты" на "рефлексы", чтобы избежать спорной концепции.

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

Ну, человек за жизнь видит около миллиарда токенов.

Вот, кстати, вообше не верю. Они за токены буквы посчитали?

А теперь пусть посчитают пиксели в лице палочек и колбочек в сетчатке. Которые могут различать изменения по несколько десятков в секунду. Даже если учесть размытие того, что не в фокусе, отброс того, что мозг считает не важным, и запаздывание реакции и прочее, то всё равно миллиард должен набраться на несколько минут. Но это то, что достигает сознания. Полный объём информации со зрения может быть по миллиарду токенов за долю секунды. Просто мозг их фильтрует и до сознания доходит доля процента.

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

Далеко не сразу он обладает интеллектом. Ребёнка до 2-3-4 лет тяжело назвать разумным. А до года он и вовсе беспомощный. Насчёт слепых можно сказать, что органов чувств у человека много. И может ли человек получить разум, если отключатся все из них, я сильно сомневаюсь.

Человек за жизнь видит намного больше чем миллиард токенов. Картинки, звуки и вообще все сигналы от всех нервов тоже можно токенизировать. Токены даже в ллм это не только слова и буквы.

Синтез ещё. «Если курдюмка делает их одного бокрика восемь крокозябликов, а петуська из трёх крокозябликов делает два мардыга, то сколько мардыгов можно получить, имея шесть бокриков?» (И чтобы без подсказок!!!)

Вы имели в виду 32 но ответ "От нуля до бесконечности. "

1 может ли курдюмка обработать больше одного бокрика? И захочет ли это сделать. И сможете ли её (их) найти и уговорить.

2 тоже самое с петуськами

Возможно что мардыги бесплатные . Или кракозябрики

Sign up to leave a comment.