Почему HashSet <T>.IsReadOnly является явным?

Какую версию tenorflow вы скачали?

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

Мне пришлось обновить мою установку tenorflow (1.13.1), чтобы этот код работал, вот что я вывел.

WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
Epoch 1/3
60000/60000 [==============================] - 6s 94us/sample - loss: 0.2652 - acc: 0.9213
Epoch 2/3
60000/60000 [==============================] - 6s 95us/sample - loss: 0.1103 - acc: 0.9660
Epoch 3/3
60000/60000 [==============================] - 6s 100us/sample - loss: 0.0735 - acc: 0.9765
10000/10000 [==============================] - 0s 35us/sample - loss: 0.0875 - acc: 0.9731
0.08748154099322855
0.9731

В зависимости от того, какой менеджер библиотек вы используете, попробуйте обновить

Для Pip & amp; Python3:

pip3 install tensorflow --upgrade

Для Анаконды:

conda update tensorflow

Затем выполните

import tensorflow as tf
print(tf.__version__)

, чтобы убедиться, что у вас последняя доступная

12
задан ripper234 13 April 2009 в 09:59
поделиться

2 ответа

Я предполагаю, потому что, хотя HashSet реализует ICollection, IsReadOnly не имеет никакого значения для HashSet. Фактически, если вы отражаете это, свойство всегда возвращает false. Реализация этого явно скрывает этот метод от открытого интерфейса.

Другая причина заключается в том, что интерфейс ICollection может быть реализован по случайным причинам (например, для поддержки сериализации xaml), а не потому, что это необходимо для первичного использования класса. Таким образом, его явная реализация может убрать помехи из интерфейса класса.

17
ответ дан 2 December 2019 в 07:04
поделиться

В основном есть две причины, по которым вы должны прибегнуть к явной реализации интерфейса (источник: MSDN ):

  1. Вы реализуете несколько взаимодействует с членами, содержащими одинаковые подписи, и вы хотите, чтобы эти члены вели себя по-разному.
  2. Член интерфейса не представляет особого интереса для класса, но необходим для ссылки на объекты через интерфейс.

Для HashSet применяется последний случай, поскольку хеш-набор никогда не доступен только для чтения, и IsReadOnly , таким образом, всегда будет возвращать false .

5
ответ дан 2 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: