Ошибка «TypeError: объект« Session »не вызывается» »sess = tf.compat.v1.Session () (graph = tf.compat.v1.get_default_graph (), config = session_conf) - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь установить семена и настроить параметры keras, чтобы убедиться, что мои эксперименты воспроизводимы. Когда я запускаю следующее (на основе кода в ответе на этот вопрос ):

# Import libraries
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras.models import load_model
from tensorflow.keras.regularizers import l2

# for setting seeds and configuring keras so that experiments are reproducible
from numpy.random import seed
import random as rn
import os
from tensorflow.keras import backend as K

seed_num = 1

os.environ['PYTHONHASHSEED'] = '0'
np.random.seed(seed_num)
rn.seed(seed_num)

session_conf = tf.compat.v1.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)

tf.random.set_seed(seed_num)

sess = tf.compat.v1.Session()(graph=tf.compat.v1.get_default_graph(), config=session_conf)
K.set_session(sess)

... возникает ошибка:

TypeError: Объект 'Session' не может быть вызван

Что мне нужно изменить, чтобы заставить его успешно работать и гарантировать воспроизводимость моих экспериментов?

Я работаю с tenorflow версии 2.1.0 в ноутбуке Jupyter на Ма c.

1 Ответ

0 голосов
/ 20 апреля 2020

В строке, следующей за последней, вы, вероятно, захотите построить объект Session, используя аргументы graph и config, а не call a Session.

Измените это:

sess = tf.compat.v1.Session()(graph=tf.compat.v1.get_default_graph(), config=session_conf)

на следующее:

sess = tf.compat.v1.Session(graph=tf.compat.v1.get_default_graph(), config=session_conf)

Вам также потребуется изменить код в четырнадцатой строке:

from tensorflow.compat.v1.keras import backend as K

Начиная с Tensorflow 2.0, Keras не предоставляет сессии в бэкэнде, как раньше. Вы можете обойти это, используя compat.v1 API, но это скорее не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...