Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
https:https://colab.research.google.com/
В этом треде:
- Постим колабы с нейронками
- Обсуждаем их работу
- Пишем свои нейронки
- Бугуртим от закрытости openAI
- И так далее
Почему не в треде нейронок? Там теоретики обсуждающие важные вопросы и спамить сгенерированными йобами - плохо.
Так просто никто не пишет.
Здесь не бэ, знаешь ли, чтобы сто постов в час было. Потому я тебе и говорил - не создавай, блядь, отдельный тред.
Но ведь... В бэ плодить треды с перекотами плохо - пидорнут в /фаг, где сидят 1,5 анона спорящие чей крым. В здешний тред нейронок не вариант и я писал почему. Хотя возможно и правда было лучше выбрать другой раздел или как и раньше раз в месяц другой создавать 3-4 перекотных в /б. Правда из других разделов только вниманиеблядский и мертвый /др да тот же мертвый /фаг, если не считать другие мертвоборды.
С другой стороны как по мне тред нейронок в колабе имеет потенциал и может поднять постинг в /пр за счет прикольных результатов работы нейронки и вялого форса раз в тот же месяц в /б. Но на самом деле хз.
>и я писал почему
А я тебе писал "игнорируй и пости". А лучше на дайри иди с такой потребностью во ВНИМАНИИ. По три-четыре переката он создает блядь, при том что сам смешного ничего не постит.
> А лучше на дайри иди с такой потребностью во ВНИМАНИИ
Нет никакой потребности. По крайней мере к себе, иначе я бы писал с галкой и в оп посте этого треда написал бы вниманиеблядскую хуйню. Скорее просто хочу немного пофорсить это нейронку и колаб гугла в целом ведь это на самом деле годная хуйня, что сайт на котором тебе за нихуя дают на 12 часов видеокарту теслу Т4, что нейронки которые на текущем уровне развития могут генерировать хуйню на уровне слепых художников под лсд по одной лишь фразе, или оживлять фото перенося движения лица с одного на другое, хотя всего 3 года назад максимум на что они были способны это хуевая генерация текста и крайне хуевая генерация птиц за 24 часа непрерывной работы.
к тому же мой код настолько дерьмо что я жду пока кто нибудь умеющий перепишет его или хотя бы улучшит с самого первого треда по нейронке генерирующей пики по фразам
> при том что сам смешного ничего не постит
Тред не только о смешном же, к тому же там дохуя моих бампов с пиками разной годности. Не понимаю доеба.
Если что трава сделанная из мечей.
>все с новым оптимизатором и поэтому на каком то моменте изменения прекратились.
Чому так?
Типо лр больше не изменялся? Какие настройки поставил?
Тестовые же, там есть ячейка снизу с теми на которых тестирую, в принципе они почти не отличаются но там новый адаптивный лр. Он только уменьшает лр умножая на 0.999 если потери падают, тот который в основной ячейке с настройками и умножает и уменьшает. В принципе он не так уж и плохо работает если подобрать правильный стартовый и если повезет со стартом.
Он и увеличивает. Просто похоже на то, что онсчитает, что это нинужна делать.
Можешь попробовать изменить вот этот параметр, правда ОП его не внес в настройки(
А. И вот это измени. Просто ОП поставил 0, а ты захреначь больше.
512x512, 1:05
я и есть тот оп
Но ведь первый это игнорирование уменьшения если уменьшение меньше чем eps. Второй вовсе отвечает за то сколько он терпит отсутствие положительных изменений в потерях. По крайней мере этот модуль только уменьшает.
В принципе тут можно сделать тот же костыль что и со старым, который ограничивал повышение, только чтобы он ограничивал понижение. Но разумнее будет добавить другой алгоритм оптимизации и уменьшить количество костылей из которых по сути и состоит код. но сейчас я этого делать не буду, максимум проводить тесты на текущем коде и иногда постить сюда, кстати в результате тестов выяснилось что членодевок и футанарей в датасете не было, фембои были лишь в виде фурри-параши, а томгирлы были как в видеорелейте на старых настройках
Кстати, у тебя есть мысли как дообучить 512 модель не переобучая с нуля? Видел это https://github.com/ajbrock/BigGAN-PyTorch но оно устарело на 2 года и там нет и слова про дообучение либо я пропустил.
Скажем добавить в датасет дохуялион хуевин подписанных клипом. Те же дикпики или прон, фотографии текста, и так далее.
Он на тензорфлове и как я понял основное отличие в енкодере. В блокноте путорч и используется клип как енкодер, а я слишком туп для тф.
1024x1024, 0:05
спиздил с реддита Нарыл нейронку стайлгана совмещенного с клипом, то есть пишешь нормаль (например просто слово лицо), пишешь цель (лицо с бородой, лицо с голубыми глазами и т.д.) и оно делает из первого второе. Из минусов хуевейшие латентные координаты, в пикриле от Аники только фон. Ну и разумеется пока не менял его колаб, он коряв, неудобен, и фотку нужно загружать вручную а потом вводить имя файла. Возможно завтра гляну и создам тред в /б где причешу код и где будет кнопка сделать пиздато.
https://colab.research.google.com/github/orpatashnik/StyleCLIP/blob/main/notebooks/StyleCLIP_global.ipynb
https://github.com/orpatashnik/StyleCLIP
Тред переносится на завтра, сегодня пытаюсь пофиксить хуйню из за которой настройка среды занимает 10-15 минут. Сука, как же ненавижу requirements.txt в котором прописаны модули с версией.
1024x1024, 0:06
Не думаю что взлетит так что создавать тред не буду.
https://colab.research.google.com/drive/13E8HGIaPvu8DuCDnthlY1U7zRj3p9rBB?usp=sharing
1024x1024, 0:06
Абу выпив мочи.
1024x1024, 0:26
Криповая хуйня (лицо мужика - лицо фембоя).
Видимо у тебя не настроена среда. Это первая скрытая ячейка, она ещё минуты 4 идет. Ну и перед видео нужно все остальные запустить.
Переход от пользования чужими ноутбуками к самостоятельному осмысленному обращению с нейронкой. Есть гайды?
Нашел другую интерпретацию от того кто изначально писал эту >>003485 нейронку. Как и практически все нейронки от него она не работала и пришлось вставлять костыли. На удивление даже получилось прикрутить оптимизатор мадград и он даже работает с остальными фичами как и надо. Сам оригинальный колаб не обновлялся с января так что его можно считать заброшенным.
Как проведу тесты и допилю все что смогу выложу сюда.
создавать тред в /б мне лень.
Пока не до конца допилил оформление и не во всем разобрался, но вот.
https://colab.research.google.com/drive/1AyfxhnKuXnzq8ggEHGENpqPnCbC2MDKt?usp=sharing
К слову вот сравнение мадграда (1 пик) и адама (2 пик). К удивлению повышение аугментаций (в старом колабе плотности выполнения) увеличивает потери.
Ну и тут работают потери как надо, в моем старом потери начинались с крайне низких и шли к 40 потом постепенно спускаясь, скача, а затем поднимаясь до небес медленно но верно.
А еще вот видео со старого (1 видео) на тестовых с сохранением каждую итерацию и этого на мадграде (2 видео), на обоих lr залочен на 0.02 и не меняется для чистоты эксперимента. Сейчас тестирую адаптивный но добавил только тот который редуцелронпланетаус или как то так.
Обе фразы - Photo of a forest fire.
Зачем тебе обработка строк? Он их просто через BPE токенизирует, а дальше в эмбеддинг.
При подаче пустой строки на вход некоторых BERT-трансформеров вываливается ошибка.
Вот и вопрос, так и должно быть или это неправильно?
>>030366
Зачем bert когда есть ламповый gpt-2?
Могу если нужно блокнот для его тренировки на колабе скинуть, он использует aitextgen но в принципе его модель можно запустить на любой другой версии вроде оригинальных трансформеров от хугфесов или на оригинальном коде, пустые строки должен поддерживать.
Алсо почему бы просто не использовать регулярные выражения и не заменить начало строки конец строки на начало строки спец токен конец строки в датасете и создать вокаб с этим токеном?
Там, наверное, нужно делать пэддинг (padding). Если делать через все последние абстракции, которые hugging face добавили (pipeline) и тд, то там уже делается всё, что нужно. Если руками дергать/обучать, то нужно пэддить.
Просто ради справедливости, запустить можно, тот же колаб с гпт-нео для данжена. Там 5Гб и 2.7В параметров и все работает. Кроме обучения, конечно же.
В конце концов колаб гугла не для обучения а для выполнения, и больше 15 гигов памяти видеокарты тебе никто не даст за бесплатно. А бесплатных аналогов нет и навряд ли будут, аналог от яндекса говно с триалом, остальные почти все так же.
Ну и ничто не мешает обучать модели поменьше если нужны специфичные - просто сохраняешь каждую 100 итерацию на гуглодиск а когда утыкаешься в лимит сменяешь аккаунт и подключаешься к тому же. Например я сейчас обучаю это >>2027831 → с 24 слоями и 900 эмбендингрм, все с нуля. Модель на 400М параметров и весит 1.5Гб, использует 15Гб видеопамяти для тренировки.
> Просто ради справедливости, запустить можно, тот же колаб с гпт-нео для данжена. Там 5Гб и 2.7В параметров и все работает.
Путаешь с 1.3В? Вариант GPT-neo с 2.7В весит 10 гиг. 5гиговая 1.3В в колабе уже еле дышит, память почти под завязку используется. А уже 6.3 гиговая gpt2-xl в варианте от huggingface в колабе не запускается, только оригинальная, с опенаи гитхаба. Но у такого варианта и возможностей поменьше, чем через transformers.
Платную версию колаба можно купить. Просто берешь и покупаешь. Обычной сберовской карточкой (не Мир, конечно) платил.
https://colab.research.google.com/github/finetuneanon/gpt-neo_dungeon/blob/master/gpt-neo_dungeon.ipynb
Написано 2.7В хотя весит 5 гигов.
> Платную версию колаба можно купить. Просто берешь и покупаешь. Обычной сберовской карточкой (не Мир, конечно) платил.
Ого, надо попробовать. А сколько там памяти в платной версии?
По-разному, в последнее время p100 на 16 гигов
Локально - да, бесполезна. Но в начале тестирования они выполняли все у себя а те кто использовали делали это через api. Жаль что нейронки уходят все дальше и дальше и кроме корпораций никому самые обученные нейронки запустить уже технически нельзя.
>api
Смотря насколько полноценное. Вот АПИ ко всем версиям GPT-neo https://huggingface.co/EleutherAI в том числе 2.7В https://huggingface.co/EleutherAI/gpt-neo-2.7B при этом зеро-шот работает хуже чем у версии 1.3В в колабе, а прайминг с несколькими примерами вообще невозможен. То же касается GPT-3 в AI dungeon, я пробовал...
Разве в ai dungeon модель с gpt-3 (dragon) не платная? Ну и на сайте huggingface скорее демка чем api.
Платная. Но там недельный бесплатный триал. Я попробовал и дропнул.
Пиздежь же. Сейчас попробовал, ввел реквизиты карты, там нужно ввести почтовый индекс, пишет "неправильный формат", алсо страна автоматически ставится США. Естественно, ничего не работает. Ну и в правилах там написано, в каких странах есть возможность купить колаб про. Блинолопатии там нет.
>которые hugging face добавили (pipeline) и тд
Ну вот использую pipeline 'question-answering':
some_text = {"context": "", "question": "Where have you been?"}
some_answer = some_pipeline(some_text)
А мне в ответ:
ValueError: `context` cannot be empty
Если задезть вот сюда
https://huggingface.co/transformers/v4.4.2/_modules/transformers/pipelines/question_answering.html то я вижу такое:
def normalize(self, item):
if isinstance(item, SquadExample):
return item
elif isinstance(item, dict):
for k in ["question", "context"]:
if k not in item:
raise KeyError("You need to provide a dictionary with keys {question:..., context:...}")
elif item[k] is None:
raise ValueError("`{}` cannot be None".format(k))
elif isinstance(item[k], str) and len(item[k]) == 0:
raise ValueError("`{}` cannot be empty".format(k))
Получается, таки не работает с пустями строками?
>>031485
Сбрось, пожалуйста, посмотрю.
https://colab.research.google.com/drive/15gW6LK821D2GQl7EOxCUdbKGJls8rW2I?usp=sharing
Ну и разве эта ошибка не значит что контекст не может быть нулевым? Там ведь просто пустые кавычки, попробуй написать что нибудь вместо них.
> some_text = {"context": "", "question": "Where have you been?"}
> some_answer = some_pipeline(some_text)
> А мне в ответ:
> ValueError: `context` cannot be empty
> Получается, таки не работает с пустями строками?
Ты не пынямаешь сути этой задачи. Ответ на вопрос оно берет из контекста, а он у тебя пустой. Как оно должно отвечать по-твоему? Из астрала брать контекст? Алсо, question answering pipeline у huggingface'ов вообще игрушечный. Если тебе надо нормальную систему ответов на вопросы по твоему набору текстов без указания контекста, пробуй лучше haystack https://haystack.deepset.ai/
Спасибо.
>>032611
>Ответ на вопрос оно берет из контекста, а он у тебя пустой.
Про что я спрашивал. Строки текста-то в контекст идут, если строка внезапно пустая, то всё ломается.
>пробуй лучше haystack https://haystack.deepset.ai/
Спасибо.
>Алсо, question answering pipeline у huggingface'ов вообще игрушечный. Если тебе надо нормальную систему ответов на вопросы по твоему набору текстов без указания контекста
Что можешь порекомендовать почитать по тематике, чтобы кглубить знания и навыки.
Чтобы мне аккаунт блокнули?
Есть какая-нибуль модель/архитектура, которая позволяет формулировать правильные/логичные вопросы к этим текстам? Либо ко всем сразу, либо конкретные к каждому отдельному тексту?
Просто берешь и делаешь датасет для гптшек в виде
токен начала текста
токен начала контекста контекст токен конца контекста
токен означающий начало вопроса вопрос токен конца вопроса
И по желанию
токен начала ответа ответ токен конца ответа
токен конца текста
Где токены начала и конца текста это стандартные bos и eos, а остальные просто придумай и забей в вокаб.
А потом при генерации текста пишешь нужную пару токенов внутри которой вопрос/текст/ответ, и в зависимости от того что нужно пишешь открывающий токен, а в параметре токена конца пишешь закрывающий который нужен.
Если правильно реализовать то вроде ничего сложного, разве что тебе скорее придется брать претренированную модель и файнтюнить ее если не хочешь ждать пару лет, а подводные в том что рускоязычные модели включая модель от сбера говно.
А вот готовой вроде нет. Алсо как натренируешь можно будет просто запихнуть все тексты в массив питона и запустить генерацию вопросов в цикле.
Нет такого. Можно попробовать разве что импорт нужных текстов и попросить нейроночку типа "ask me a question about pynia.csv how tall is pynya? \n ask me a question about x.csv ", может быть и выдаст что-то умное.
Если ты не промазал то не совсем, я скорее о простой тренировке gpt-2 с токенами для этой задачи.
Или где можно примеры посмотреть?
Если бы было всё так однозначно, я бы не спрашивал.
У пайплайна есть параметр device. Достаточно ли ему передать нужное значение?
Или всякие объявления вроде
use_gpu = True
device = torch.device("cuda:0" if use_gpu and torch.cuda.is_available() else "cpu")
Тоже нужны?
device = "cuda" и всё. А
> device = torch.device("cuda:0" if use_gpu and torch.cuda.is_available() else "cpu")
Это уже проверка есть ли в системе cuda или нету, более короткая запись чем
> if torch.cuda.is_available() == True:
> device = "cuda:0"
> else:
> device = "cpu"
А в принципе можно указывать это напрямую, эта переменная передается функции которая подгружает нейронку. Это тот же самый линух и тот же самый питон, но только вместо разделения на файлы тут разделение на ячейки, между которыми все переменные общие.
Спасибо.
Ты о колабе? Там ебаная Т4 или P-100, это охуенный видеокарты и их дают за нихуя на 2-8 часов . А если ты о нейронках то тред скорее не просто о них, а о них в колабе - прикрути свою качественную, адаптировать любую существующую к колабу плевое дело, к тому же многие и так уже адаптированы.
Ну и парралельно ждём пока закрытые ai выложат натренированные модели guided diffusion или хотя бы при крутят способ генерации не на рандом.
Если тут еще кто то есть, могу дать копию тестовых колабов которые устареют через пару дней.
Алсо это "The memories of old things inside a witch box" с 68 потерями.
Интересует вопрос генерации таковых для бинарных случаев Да/Нет. Есть какие готовые решения?
Тред живи.
Анон, помоги.
Как вызвать эту функцию?
get_input_embeddings()
https://huggingface.co/transformers/main_classes/model.html#transformers.PreTrainedModel
Все просто же.
Сначала
from transformers.modeling_utils import PreTrainedModel
Затем загружай модель любым методом вроде
model = GPT2LMHeadModel.from_pretrained('/pytorch_model.bin', config='/config.json')
И пиши print(PreTrainedModel.get_input_embeddings(model))
Спасибо, но тут возникают ещё вопросы.
Если мне надо ещё дальше использовать эти вычленные эмбединги, я просто присваиваю переменной и использую по назначению?
Типа
some_variable = PreTrainedModel.get_input_embeddings(model))
some_variable тогда можно будет в pipeline использовать?
Например,
ransformers.TextClassificationPipeline(data, model = some_variable, tokenizer = some_tokenizer)
Или я что-то путаю?
Он дает объект типа эмбеддинг который по сути тензор но его легче уж строкой присвоить из за траблов с типом. Например он может дать Embedding(768,768) и это просто так не вытащить. Ну и модель не может быть переменной же, обычно в model указывается путь к файлу модели.
Спасибо.
Тогда такой вопрос: текущий pipeline даёт на выходе готовое решение, но вместо него надо вытащить embedding.
Что в таком случае надо сделать? Модифицировать модель? Модифицировать pipeline?
Не совсем понял. Текущий pipeline в зависимости от задачи принимает контекст и выдает сгенерированный текст. Вроде в офф документации было про то как вытащить токены если ты про это, они на определенном этапе автоматически преобразовываются в текст.
А эта функция выдает его размер у модели.
Так, я использую предобученнную модель в пайплайне, но сейчас получается, что вместо готового ответа из пайплайна мне нужны токены/эмбеддинг токенов, для дальнейшего использования.
У меня была гипотеза, что ф-ции >>078895 могут помочь, но судя по всему, я был не прав.
Поэтому буду признателен за подсказки, как это лучше сделать.
Я так понимаю, эмбеддинг будет размерностью 768 или окло того?
Все крайне просто - не используй pipeline.
Загружаешь модель как тут >>078987, объявляешь токенизатор
tokenizer = PreTrainedTokenizerFast(tokinizer_file='./tokinizer.json')
а потом пишешь
input_ids = tokenizer.encode("Ja ebal sobak", return_tensors="pt")
И генерируешь не декодируя
generate = model.generate(input_ids)
print(generate)
И будет что то вроде
tensor ([[ 40, 69, 76, 76.......
]])
Где эти цифры и есть токены в исходном виде. А вектора ембеддинга для этого самого input_ids можно получить так
vector = model.transformer.wte.weight[input_ids,:]
print(vector)
Или получить весь ембеддинг модели через
vector = model.transformer.wte.weight
Спасибо за ответ.
>Все крайне просто - не используй pipeline.
Совсем?
То есть сама модель даст правильные ответы точнее токены/эмбеддинги и использовать модификацию, например, вот этого пайплайна с выпиливанием decode и span_to_answer не надо?
https://huggingface.co/transformers/_modules/transformers/pipelines/question_answering.html#QuestionAnsweringPipeline.__call__
Алсо, реквестирую, что почитать в чём попрактиковаться ещё по теме.
Так то легче сделать модификацию если нужен один из тасков вроде qa. Но если она обучена на правильном датасете то и правильной затравки хватит.
Хотя если ты используешь претренированную то возможно даже легче будет просто генерировать текст стандартным пиплайном а уже потом енкодить его в токены как тут >>079048, результат будет один и тот же но это слегка по васянски.
Ну и про почитать хз, сам во все это вкатываюсь через различные гитхабы и архивиксы а теорию получаю гугля то что не получается. Вроде в треде нейронок в шапке довольно много советов на эту тему.
У меня автообновление треда на дашке так что скорее всего да. Хотя я не очень опытный и мб в основном треде нейронок помогут лучше.
>в основном треде нейронок помогут лучше.
Ага, посмеются, проигнорируют, пошлют к чёрту, пообсуждают жопеншмульцера.
https://colab.research.google.com/drive/1RDsbQNbSPlG2Ar62ngyV0udytb-zym1X?usp=sharing
Так же сырая версия на каггле ведь сейчас с колабом сейчас творится какая то хуйня
https://www.kaggle.com/bananon/simswap-modifed
Тебе вопрос-ответ по текстам надо? Соответсвующий пайплайн в transformers игрушечный же, используй haystack.
Там кстати сейчас vqgan + clip вроде как актуален, но либо я держал мало либо держать нужно крайне долго. В общем скоро выложу колаб с минимальной подчисткой.
Дарю идею, оп.
В общем он готов, что колаб что каггл, но выложу сюда завтра. По качеству он на первый взгляд хуже, а допиливать адаптивный lr мне пока лень, появилась идея сделать дерево маленьких нейронок или вернее случайный лес коллективный разум наше все но для этого но понадобится время.
Чё выбор сида? Нужно получше чем случайно точку для введённой строки выбирать, очевидно
А на это уже моих скилов не хватает. Хотя в новом с vqgan вроде есть что то вроде этого но еще не тестил.
400x400, 1:30
https://colab.research.google.com/drive/1haLkhQeWMs7PfFw1qqS0Xy8EuDnbv_a_?usp=sharing
https://www.kaggle.com/bananon/vqgan-clip-z-quantize-method
если что генерация шла час на максимальной модели с не самым лучшем lr, но так как лимит явный и понедельный тратить его в пустую пока не буду
Пока просто слегка переписанный код, планирую все же добить нейронку для оптимизации lr но по времени сказать не могу, старая модель уже не подойдёт и к тому же решил сделать случайный лес или что то вроде того на основе трансформеров.
Обновил каггл версию, теперь она может что то вроде видеорелейта.
Колабом займусь позже так как уже неделю гугол не сбрасывает мне лимиты какого хуя гугол?.
*обновлю через 20 минут когда догенерируется аутпут
Возможно на этой неделе создам тред в /б когда еще немного допилю. Ну или когда гугл пофиксит анальные лимиты ведь каггл для красноглазых мазохистов а запускать на выделенном cpu крайне долго.
Как BERT'ы поступают с длинными текстами?
Тупо обрезают по количесиву токенов или дробят на части? Если дробят, как получить дотсуп к частям?
Спасибо, но тогда вопрос, а как трансфорсмер выдаёт правильный ответ, если он расположен дальше по тексту, который не входит в установленное количество токенов?
А вот никак. Возьми тот же гпт-ж и введи больше 1024 токенов не слов и не букв а токенов, то есть примерно от 1024 слов до 2048 слов обычных и меньше если слова вроде huggfacake и контекст изначальный полностью потеряется. Это особенно заметно если ввести сначала что дальше идет код для тренировки нейросети и вот файл трейн.пу, а спустя 200 строк или около того этот файл содержит в себе плохой скрипт нарезки видео в той же секции где должен быть трейн. Так же с бертом и любым другим трансформером. Единственный костыль придумали в aidungeon, судя по всему там затравка включает в себя начальный текст который всегда есть в затравке, и определенное количество предыдущих строк чтобы укладываться в лимиты.
Ну и трансформеры сами по себе устроены так, что генерируют все 1024 токена но так чтобы начальные или конкретные соответствовали затравке. Если сгенерировано меньше 1024 (зависит от модели) токенов, то оставшиеся заполняются нулями.
>А вот никак.
Смотрю сейчас пайлайны, там, судя по всему, предусмотрена возможность использовать большие тексты, путём дробления их на подвыборки, причём каждый слой модели будет получать тензор [количество подвыборок x размер подвыборки x размер слоя]
Сам пока не видел, может проспал момент добавления этой фичи. Позже посмотрю, может и пойму как получить доступ к дробленым частям если он возможен.
> может и пойму как получить доступ к дробленым частям если он возможен.
Через offset_mapping
Кстати, нубовопрос.
Есть тензор [3, 100, 768]
Как получить из него 2й по первому измерению?
tensor[1,:,:]? Или tensor[1]?
Он мне почему-то просто возвращает [100, 768]
Куда первое измерения делось?
3 как и остальные значения это же элементы, верно? Обычно tensor[1] (1 пик), но в чем у тебя проблема не знаю. Однако если он многомерный (2 пик) то это выдаст сразу все измерение, для того чтобы взять конкретный элемент например в позиции 1,1 нужно ввести tesor[1][1].
Упростим.
Есть тензор [N, 2, 3], где N - число от 1 до 10, например.
Как мне получить срезы по первому измерения размерности [1,2,3] числом 10 штук?
Видимо сначала не так понял. У тебя не просто тензор [N, 2, 3] а тензор размерности [N, 2, 3], то есть N количество измерений, 2 количество строк, а 3 количество колонок.
Не знаю как получить все 10 если их будет меньше, но для среза и получения тензоров размерности [1,2,3] можно сделать так tensor[номер измерения][номер строки или промежуток][номер колонки или промежуток].
А конкретный элемент как получить уже написал, вернее тензор содержащий конкретный элемент, для получения его в нормальном виде нужно сделать tensor[1][2][3].item() или как то так.
кстати до этого особо тензорами не баловался, и только сейчас научился тыкая их в командной строке
А, и да, я понял в чем дело, когда ты пишешь tensor[1] то тебе выдает тензор содержащий первое измерение, а у тебя их изначально три. Вот так два других отбрасываются а 1 путорч не пишет.
Тензоры в питонии и путорче это же по сути матрицы но в несколько слоев одинаково размера, то есть вместо 3 переменных содержащих в себе матрицу, имеем одну содержащую сразу три. А уже матрицы это массив с осью у, то есть вместо 256 переменных по 256 элементов имеем одну содержащую сразу все.
https://colab.research.google.com/drive/1tHJKEbZck15UEdmC2LI_ztpd0ERpdETX?usp=sharing
Он лучше чем у елузеролов так как сохраняет не через imsave и массив numpy и не режет из за этого скорость в 6 раз если захочешь сохранить видео.
Но ебаный гугл забанил гпу режим у всех 5 акков так что если что то не работает то протестить не смогу, хотя исправить скорее всего можно будет и без этого.
Тред в /б создам в воскресенье просто на всякий.
А, и да, сейчас заметил что кагля еще и перешла на ебучую конду и вызвала ошибки. Но делать блокнот публичным пожалуй не буду так как у меня всего 2 номера телефона а так может еще немного акк проживет, разве что на пастбин когда пофикшу код для копипаста оставлю.
Если тут не только я сижу, у кого еще есть доступ к гп колаба, проверьте, там 45 секунд на итерацию и в одной из зависимостей произошел пиздец, или где то я налажал. Сейчас стал проверять что на цп что на гп 45 секунд на любом разрешении, проблема в loss.backward() но сам решить пока не смог. Пробовал копипастить 99% оригинальных и та же хрень но гп проверял кагловский а там ошибок 10 только из-за конды.
Бля, походу тред умер и я один тут. В общем дело было в том что каггля поставила старый торч.
Как распарсить параметр из командной строки dvc?
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.