Против контактный зоопарк: Как закрыть контактный зоопарк?
Контактный зоопарк: «за» и «против»: amarok_man — LiveJournal
Сейчас такое явление, как контактный зоопарк совсем не редкость. Они могут находится и в детских клубах, в частных небольших зоопарках и даже в крупных торговых центрах-для привлечения покупателей с детьми. Животные в них могут содержаться самые различные: еноты, альпаки, сурикаты, хорьки и скунсы . А уж зайчиков\кроликов, барашков\поросят то вообще чуть не обыденность в этих зоопарках.
Но ведь самый безобидное (казалось бы) животное может огрызнуться и дать «сдачи» обидчику. Ведь ребёнок может вольно или невольно причинить боль животному: ущипнуть, вывернуть (чтобы дядя не заметил) лапу и так далее… А уж дёрнуть за хвост, это же такая «забава». Ребёнок и сам порой не понимает, что делает боль животному. Зверёк будет терпеть сколько может, а потом… потом начнутся скандалы и суды. И то хорошо, если просто скандалы, а ведь могут быть и трагедии ! И уж почти наверняка трагедией закончится этот скандал для животного. Если оно укусит или оцарпает когтями ребёнка и неважно, кто спровоцировал это ранение.
Сообщения об инцидентах поступают с завидной периодичностью. Так, в начале года в контактном зоопарке парка «Сокольники» ёж укусил пятилетнего мальчика и его маму. В конце февраля макака напала на мальчика в одном из развлекательных центров на Арбате. Ребёнок просунул палец в вольер к животному, макака за него и ухватилась.
В Москве официально действует 32 контактных зоопарка — такую информацию предоставил Лайфу столичный комитет ветеринарии. Однако на самом деле их больше. Даже «Яндекс» показывает 37
И хорошо если животные содержатся в опрятных и аккуратных вольерах, сыты и видно, что ухожены:
а ведь могут быть и совсем неподобающие условия, которые выглядят настоящим издевательством над животными
Из незаконного зоопарка, расположенного около элитного комплекса в Москве, сотрудники департамента природопользования и охраны окружающей среды изъяли более 100 животных.
44 голубя, 52 кролика, 1 петух, 5 кур, 3 енота, 1 белка, 1 архар, 2 лебедя, 2 пятнистых оленя были отправлены в центр передержки «Простар+». Как сообщили в ведомстве, все они находятся в удовлетворительном состоянии.
«28 октября в рамках исполнительного производства для оказания содействия работе судебных приставов было проведено изъятие животных, — сообщили в пресс-службе департамента. — Зверей забрали из незаконного зоопарка, расположенного по адресу улица Минская, 1Г на территории, подлежащей освобождению».
В социальных сетях посетители данного контактного зоопарка не раз указывали на то, что зверей там почти никто не кормит. На одном из форумов жительница Москвы написала следующее:
«Грустно смотреть, как зверятки бегут за тобой, тычутся носиками в щели клетки и смотрят печальными голодными глазами. По-моему, их там просто никто не кормит».
…………………………
А с другой стороны хочется, чтобы и дети приобщались к общению с животными, были в ладу с природой и любили её. Любили братьев своих меньших и понимали, что они живые, и так же им бывает больно, как и всем.
как вы считаете нужны ли такие контактные зоопарки и если да, то какие условия должны быть при их посещении детьми.
«Енот ослеп, от него попытались избавиться» Что ждет зверей, попавших в контактный зоопарк: Общество: Россия: Lenta.ru
Зоозащитники намерены добиться закрытия контактных мини-зоопарков в стране. В последние годы они перестали быть чем-то диковинным: чтобы потискать зверушек, достаточно приехать в ближайший торговый центр. Несмотря на бесконечный поток посетителей, которые зачастую не церемонятся с животными, они выглядят ухоженными и здоровыми. Какой ценой достигается это благообразие? Какие опасности кроются в посещении контактных зоопарков? Президент зоозащитного центра ВИТА Ирина Новожилова рассказала «Ленте.ру» о том, что творится за дверьми таких зверинцев и можно ли сочетать «трогательный» бизнес и заботу о животных.
«Лента.ру»: Откуда появилась идея контактного зоопарка?
Новожилова: История контактных зоопарков началась с того, что некий российский бизнесмен решил реализовать свою мечту: приобщить горожан к природе. Так родилась идея круглосуточно держать животных на кафельном полу при искусственном освещении — в торговом центре. Точка окупается буквально за три месяца, оборот нешуточный. Конечно, речь тут не идет о любви к природе или заботе о животных — это бизнес. Мы постоянно получаем сообщения об оторванных крыльях у птиц, отбитых внутренних органах у ежей и кроликов, которых роняют на пол. Иногда люди, которые работали в таких зоопарках, пишут нам о том, что происходит за кулисами.
Ирина Новожилова
Но животные не выглядят заморенными или измученными.
Животные действительно чистенькие, выглядят здоровыми. Это достигается за счет того, что зверей меняют достаточно часто: одни заболевают — завозят других. Более редкие и дорогие звери, которые вынуждены «работать» подолгу, как правило, лежат вялые и апатичные. С мелкими животными не церемонятся. Ежики, морские свинки — это одноразовый товар. Одних используют на корм хищникам, других сжигают. Недавно енот в одном из московских зоопарков покусал человека, где он теперь — неизвестно. В другом зоопарке енот ослеп, от него попытались избавиться, но кто-то в итоге его приютил.
Посетителям нравится…
Родителям самое главное — чтобы не было запаха и ребенок был доволен. Судьба животных их волнует меньше всего. Вот, например, в одном контактном зоопарке мы попросили руководство ввести перерыв для ночных животных на час. Но как только нам пошли навстречу, начались жалобы мамаш: «Мы ехали через весь город, чтобы ознакомиться со всем многообразием представленных у вас животных. Ребенок хочет потискать всех, кто у вас есть».
Часто ли животные травмируются в контактных зоопарках?
К сожалению, подобные инциденты не редкость. На прошлой неделе в Ставрополье погиб самец зебры. В тверском контактном зоопарке держали львенка в нарушение всех возможных правил и норм. Его довели до изнеможения, увезли полуживого на карантин. У грызунов под вечер аллергическая сыпь — из-за того, что мамочки проходят в шубах, опасаясь оставлять их в гардеробе. Масса историй, когда дети травмировали зверей, а те, в свою очередь, их кусали. Например, африканские ушастые ежики: иголки колются — и ребенок бросает зверька. Тот падает с метровой высоты и травмирует внутренние органы. Дети наступали на морских свинок и птенцов ногами…
Дети проявляют агрессию к животным?
У малышей разная реакция на животных: чаще всего ребенок боится дотронуться, и это нормально. Однако мать настойчиво тянет за руку, чтобы он потрогал, надавил, пощупал, схватил — потому что за это деньги заплачены. Некоторые дети с ревом вбегают в вольеры, начинают топать, стараются догнать, задавить маленьких животных. Бывают и безразличные дети — безучастно наблюдают за происходящим. Нет ничего страшнее, когда от скуки или чтобы убить время ребенку дают тискать животных. Это крайне непедагогичный подход.
Волнистые попугаи в контактном зоопарке.. Фото: Евгений Биятов / РИА Новости
Существует целая сеть зоопарков «Зверюшки как игрушки». Только вдумайтесь в название! В этом заключается суть контактных зоопарков. Весь смысл в том, чтобы повысить посещаемость торговых центров. Такой циничный подход шокирует. Я не знаю, какое поколением мы вырастим, если будем брать за норму потребительское отношение к животным. Детей, которые будут воспринимать животных как витринные образцы.
Что происходит с заболевшими животными?
В контактных зоопарках не предусмотрены лазареты для больных животных. На маленьких душных пятачках такой возможности нет, поэтому их просто утилизируют. Как они их убивают — большой вопрос. Сомневаюсь, что каждой морской свинке будут делать инъекцию. Контактный зоопарк — это конвейер, воспитывающий потребительское отношение вместо уважительного.
Эти контакты опасны только для животных?
Увы, не только. При контакте с животным идет передача патогенных микроорганизмов. В контактном зоопарке за 11 часов работы проходят сотни детских и взрослых рук. Может быть до 200 посетителей. Едва ли кто-то из них моет руки до и после общения со зверями. Кроме того, везде предусмотрена процедура кормления за дополнительную плату. Ребенок лезет животным в рот с этим кормом, потом себе в рот лезет — это гарантированный способ передачи инфекций.
Только ли инфекций стоит опасаться при контакте с животными?
Для детей небезопасны удары и укусы животных. Например, в московском контактном зоопарке недавно кролик чуть не откусил палец ребенку. Клюв страуса очень массивный, движения резкие — если подойти близко к клетке, можно остаться без глаза.
В других странах тоже есть контактные зоопарки в торговых центрах?
Такого я не встречала. В Лондоне есть центр, обучающий гуманному отношению к животным. Там строгая запись — всего несколько человек в день, а не бесконтрольный поток посетителей. Задача совсем другая: научить детей бережному отношению к животным. Просто так тискать ради забавы даже в приютах не дадут: нужны перчатки, бахилы, время ограничено и никаких фотоаппаратов. У нас все просто: главное — заплатите деньги, а еще лучше — купите корм и суйте его животному прямо в рот. Само слово «зоопарк» исключает контакт между животным и человеком. У животного должна быть возможность спрятаться от людей, отдохнуть, поспать, а не крутиться весь день в толпе. Практически на всех точках есть животные, ведущие ночной образ жизни, — ежи, совы, галаго, которых днем вообще нельзя тревожить. А к ним через каждый пять минут врываются родители с детьми, чтобы сделать селфи.
Общение с кошачьим лемуром в контактном зоопарке.. Фото: Евгений Биятов / РИА Новости
Можно ли что-то изменить в работе контактных зоопарков, сделать их безопаснее и гуманнее?
Увы, нет — такие заведения следует запретить. Иначе как жестоким обращением с животными их работу не назовешь. Весь мир уходит от формата зоопарка, в котором звери из разных климатических зон сведены в одном месте для того, чтобы удовлетворить любопытство посетителей. Но нам уже мало просто посмотреть, всех нужно потрогать, а потом начинают домой приобретать. В других странах идут программы по переселению животных из зоопарков в заповедники. В России все с точностью до наоборот: на московских фестивалях валяются усталые еноты, северных оленей привозят — такое ощущение, что люди не чувствуют разницы между живыми существами и элементами дизайна.
Но идея зоопарков подразумевает и познавательную деятельность: ребенок узнает животный мир.
Взаимодействовать с животными можно в лесопарковых зонах, где они не сидят весь день на кафельном полу. Люди там ходят по тропинкам, а за ограждением в лесу гуляют животные. Если хочется быть ближе к природе, торговый центр — неподходящее место. Выезд на природу в места обитания зверей — это не так дорого, хотя и не так просто, как дойти до ближайшего ТЦ, чтобы тискать енота в крохотной комнате. Давайте вспомним, как праздное любопытство приводило к созданию человеческих зоопарков, где в вольерах вместе со страусами и зебрами содержали негров, эскимосов и индейцев. Это было не так давно — в Европе такие «зверинцы» просуществовали до 1930-х годов. Никакой образовательной функции у контактных зоопарков нет, одни эгоистические хотелки, приводящие к страданиям животных.
Базовое использование — Документация PettingZoo
Изменить эту страницу
Переключить боковую панель оглавления
Установка
Чтобы установить базовую библиотеку PettingZoo: pip install pettingzoo
.
Сюда не входят зависимости для всех семейств сред (некоторые среды могут быть проблематичными при установке в определенных системах).
Чтобы установить зависимости для одного семейства, используйте pip install pettingzoo[atari]
или используйте pip install pettingzoo[all]
для установки всех зависимостей.
Мы поддерживаем Python 3.7, 3.8, 3.9 и 3.10 в Linux и macOS. Мы принимаем PR, связанные с Windows, но не поддерживаем ее официально.
Инициализация сред
Использование сред в PettingZoo очень похоже на их использование в Gymnasium. Вы инициализируете среду через:
от pettingzoo.butterfly импортный поршеньball_v6 env = поршневой шар_v6.env()
Среды, как правило, легко настраиваются с помощью аргументов при создании, например:
cooperative_pong.env (ball_speed = 18, left_paddle_speed = 25, right_paddle_speed=25, is_cake_paddle=Истина, max_cycles=900, bounce_randomness=Ложь)
Взаимодействие с окружающей средой
С окружением
можно взаимодействовать, используя интерфейс, аналогичный Gymnasium:
.
env.reset() для агента в env.agent_iter(): наблюдение, вознаграждение, прекращение, усечение, информация = env.last() action = env.action_space(agent).sample() # здесь вы должны вставить свою политику env.step(действие)
Наиболее часто используемые методы:
agent_iter(max_iter=2**63)
возвращает итератор, который возвращает текущий агент среды. Он завершается, когда все агенты в среде выполнены или когда max_iter
(выполнены шаги).
last(observe=True)
возвращает наблюдение, вознаграждение, выполнено и информацию для агента, который в данный момент может действовать. Возвращенное вознаграждение — это кумулятивное вознаграждение, полученное агентом с момента его последнего действия. Если наблюдать
имеет значение False, наблюдение не будет вычисляться, а вместо него будет возвращено None. Обратите внимание, что выполнение одного агента не означает, что среда завершена.
reset()
сбрасывает среду и настраивает ее для использования при первом вызове. Этот метод должен вызываться перед любым другим методом.
шаг(действие)
принимает и выполняет действие агента в среде, автоматически переключает управление на следующего агента.
API дополнительной среды
PettingZoo моделирует игры как игры Agent Environment Cycle (AEC) и, таким образом, может поддерживать любую игру, которую мультиагентный RL может рассматривать, позволяя фантастически странные случаи. Из-за этого наш API включает в себя функции и атрибуты более низкого уровня, которые вам, вероятно, не понадобятся, но очень важны, когда вы это сделаете. Однако их функциональность используется для реализации функций высокого уровня, описанных выше, поэтому их включение — это просто вопрос факторизации кода.
агенты
: Список имен всех текущих агентов, обычно целые числа. Они могут быть изменены по мере развития среды (т. е. агенты могут быть добавлены или удалены).
num_agents
: Длина списка агентов.
agent_selection
атрибут среды, соответствующий выбранному в данный момент агенту, для которого может быть выполнено действие.
Observation_space(agent)
Функция, которая извлекает область наблюдения для конкретного агента. Это пространство никогда не должно меняться для конкретного идентификатора агента.
action_space(agent)
функция, которая извлекает пространство действий для конкретного агента. Это пространство никогда не должно меняться для конкретного идентификатора агента.
завершений
: Список состояния завершения каждого текущего агента в момент вызова, с указанием имени. last()
обращается к этому атрибуту. Обратите внимание, что агенты могут быть добавлены или удалены из этого словаря. Возвращенный дикт выглядит так:
завершения = {0:[состояние завершения первого агента], 1:[состояние завершения второго агента] ... n-1:[состояние завершения n-го агента]}
усечения
: Список состояния усечения каждого текущего агента в момент вызова, с указанием имени. last()
обращается к этому атрибуту. Обратите внимание, что агенты могут быть добавлены или удалены из этого словаря. Возвращенный дикт выглядит так:
truncations = {0:[состояние усечения первого агента], 1:[состояние усечения второго агента] ... n-1:[состояние усечения n-го агента]}
информация
: Список информации для каждого текущего агента с указанием имени. Информация о каждом агенте также является диктовкой. Обратите внимание, что агенты могут быть добавлены или удалены из этого атрибута. last()
обращается к этому атрибуту. Возвращенный дикт выглядит так:
infos = {0:[информация о первом агенте], 1:[информация о втором агенте] ... n-1:[информация о n-м агенте]}
наблюдать(агент)
: Возвращает наблюдение, которое агент может сделать в данный момент. last()
вызывает эту функцию.
вознаграждений
: Список вознаграждений каждого текущего агента в момент вызова, с указанием имени. Вознаграждает мгновенную награду, полученную после последнего шага. Обратите внимание, что агенты могут быть добавлены или удалены из этого атрибута. last()
не имеет прямого доступа к этому атрибуту, а возвращаемое вознаграждение сохраняется во внутренней переменной. Структура вознаграждений выглядит так:
{0:[вознаграждение первого агента], 1:[вознаграждение второго агента] ... n-1:[вознаграждение n-го агента]}
seed(seed=None)
: Повторное заполнение среды. reset()
должен вызываться после seed()
и перед step()
.
render()
: Возвращает визуализированный кадр из среды с использованием режима рендеринга, указанного при инициализации. В случае режима рендеринга 'rgb_array'
возвращает пустой массив, а с 'ansi'
возвращает напечатанные строки. Нет необходимости вызывать render()
с режимом human
.
close()
: Закрывает окно рендеринга.
Дополнительные компоненты API
Хотя это и не требуется базовым API, большинство нижестоящих оболочек и утилит зависят от следующих атрибутов и методов, и их следует добавлять в новые среды, за исключением особых обстоятельств, когда добавление одного или нескольких невозможно.
возможных_агентов
: Список всех возможных_агентов, которые может создать среда. Эквивалентен списку агентов в областях наблюдения и действия. Это не может быть изменено путем воспроизведения или сброса.
max_num_agents
: длина списка возможных_агентов.
Observation_spaces
: Список пространств наблюдения каждого агента с указанием имени. Это не может быть изменено путем воспроизведения или сброса.
action_spaces
: Список пространств действий каждого агента с указанием имени. Это не может быть изменено путем воспроизведения или сброса.
state()
: Возвращает глобальное наблюдение текущего состояния среды. Не все среды будут поддерживать эту функцию.
state_space
: Пространство глобального наблюдения за окружающей средой. Не все среды будут поддерживать эту функцию.
Известные идиомы
Проверка выполнения всей среды
Когда агент завершается или усекается, он удаляется из агентов
, поэтому после завершения среды агенты
будут пустым списком. Это означает, что не env.agents
является простым условием для выполнения среды.
Развертка среды
Если у вас есть обернутая среда и вы хотите получить развернутую среду под всеми слоями оболочек (чтобы вы могли вручную вызвать функцию или изменить какой-либо базовый аспект среды), вы можете использовать .unwrapped
атрибут. Если среда уже является базовой, атрибут .unwrapped
просто вернет сам себя.
base_env = knights_archers_zombies_v10.env().unwrapped
Переменные номера агентов (смерть)
Агенты могут умирать и генерировать в течение среды. Если агент умирает, то его запись в словаре завершенных устанавливается на True
, он становится следующим выбранным агентом (или после другого агента, который также завершается или усекается), и действие, которое он предпринимает, должно быть Нет
. После того, как этот бессмысленный шаг будет сделан, агент будет удален из агентов
и других изменяемых атрибутов. Генерацию агента можно просто выполнить, добавив его к агентам
и другим изменяемым атрибутам (при этом он уже находится в возможных агентах и пространствах действий/наблюдений) и переходя к нему в какой-то момент с помощью agent_iter.
Окружающая среда как агент
В некоторых случаях для изучения полезно отделение действия агента от среды. Это можно сделать, рассматривая окружающую среду как агент. Мы рекомендуем называть актора окружающей среды номером 9.0011 env в env.agents, и в качестве действия принять None
.
Необработанные среды
Среды по умолчанию заключены в несколько облегченных оболочек, которые обрабатывают сообщения об ошибках и обеспечивают разумное поведение при неправильном использовании (например, выполнение недопустимых ходов или пошаговое выполнение перед сбросом). Однако они добавляют очень небольшое количество накладных расходов. Если вы хотите создать среду без них, вы можете сделать это с помощью конструктора raw_env()
, содержащегося в каждом модуле:
env = knights_archers_zombies_v10.raw_env(<параметры окружения>)
Atari — Документация PettingZoo
Изменить эту страницу
Переключить боковую панель оглавления
Среды Atari основаны на Arcade Learning Environment. Эта среда сыграла важную роль в развитии современного обучения с подкреплением, и поэтому мы надеемся, что наша мультиагентная версия будет полезна при разработке мультиагентного обучения с подкреплением.
Баскетбольный понг
Бокс
Боевой самолет
Боевой танк
Двойной данк
Погребенный Соревновательный
Погребенный Кооператив
Захват флага
Фузпонг
Хоккей
Поединок
Братья Марио
Сумасшедший лабиринт
Отелло
Понг
Квадрапонг
Космические захватчики
Космическая война
объемный
Теннис
Видеошашки
Волейбольный понг
Военачальники
Мастер Работы
Установка
Уникальные зависимости для этого набора сред можно установить с помощью:
pip установить pettingzoo[atari]
Установите ПЗУ с помощью AutoROM или укажите путь к ПЗУ Atari с помощью rom_path
аргумент (см. Общие параметры).
Использование
Чтобы запустить среду Space Invaders со случайными агентами:
из pettingzoo.atari импортирует space_invaders_v2 env = space_invaders_v2.env(render_mode="человек") env.reset (семя = 42) для агента в env.agent_iter(): наблюдение, вознаграждение, прекращение, усечение, информация = env.last() если завершение или усечение: действие = нет еще: action = env.action_space(agent).sample() # здесь вы должны вставить свою политику env.step(действие) env.close()
Обзор игр
В большинстве игр участвуют два игрока, за исключением Warlords и нескольких вариаций понга, в которых участвуют четыре игрока.
Сведения об окружающей среде
ALE был тщательно изучен, и было выявлено несколько заметных проблем:
Детерминизм : Консоль Atari является детерминированной, поэтому агенты теоретически могут запоминать точные последовательности действий, которые максимизируют конечный результат. Это не идеально, поэтому мы рекомендуем использовать SuperSuit 9.0011 sticky_actions обертка (пример ниже). Это рекомендуемый подход «Machado et al. (2018), «Пересмотр аркадной обучающей среды: протоколы оценки и открытые проблемы для обычных агентов»
Мерцание кадров : Игры Atari часто не отображают каждый спрайт в каждом кадре из-за аппаратных ограничений. Вместо этого спрайты (например, рыцари в Joust) иногда рендерятся каждый второй кадр или даже (в Wizard of Wor) каждые 3 кадра. Стандартный способ обработки этого вычисления пиксельного максимума предыдущих двух наблюдений (см. пример ниже для реализации).
Предварительная обработка
Мы рекомендуем использовать библиотеку суперкостюмов для предварительной обработки. Уникальные зависимости для этого набора сред можно установить через:
pip установить суперкостюм
Вот пример использования препроцессора Atari:
импортный суперкостюм импорт из pettingzoo. atari space_invaders_v1 env = space_invaders_v1.env() # в соответствии с оберткой MaxAndSKip в openai baseline, максимум за последние 2 кадра # для борьбы с мерцанием кадров env = суперкостюм.max_observation_v0(env, 2) # Repeat_action_probability установлен на 0,25, чтобы ввести недетерминированность в систему env = supersuit.sticky_actions_v0 (env, Repeat_action_probability = 0,25) # пропускать кадры для более быстрой обработки и меньшего контроля # для совместимости с тренажерным залом используйте frame_skip(env, (2,5)) env = supersuit.frame_skip_v0(env, 4) # уменьшенное наблюдение для более быстрой обработки env = supersuit.resize_v1(env, 84, 84) # разрешить агенту видеть все на экране, несмотря на проблему мерцания экрана Atari env = supersuit.frame_stack_v1(env, 4)
Общие параметры
Все среды Atari имеют следующие параметры среды:
.env(obs_type='rgb_image', full_action_space=True, max_cycles=100000, auto_rom_install_path=Нет)
obs_type
: Есть три возможных значения для этого параметра:
‘rgb_image’ (по умолчанию) — создает RGB-изображение, которое вы бы видели как человек-игрок.
‘grayscale_image’ — создает изображение в градациях серого.
«ram» — производит наблюдение за 1024 битами, составляющими ОЗУ консоли Atari.
full_action_space
: Установка для этого параметра значения True устанавливает пространство действия на полное пространство 18 действий. Установка этого параметра на False
(по умолчанию) удаляет повторяющиеся действия и оставляет только уникальные действия.
max_cycles
: количество кадров (количество шагов, которые может сделать каждый агент) до завершения игры.
auto_rom_install_path
: Путь к вашей установке AutoROM, установленной
с помощью инструмента Farama-Foundation/AutoROM.
Это путь, который вы указали при установке AutoROM. Например, если
вы используете боксовую среду Atari, то библиотека будет искать
ром в
/auto_rom_install_path/ROM/boxing/boxing.bin
.
Если это не указано (имеет значение None
), то библиотека ищет ромы
установлен по пути AutoROM по умолчанию.