Вопросы с тегами [tensorflow]

0

голосов
0

ответ
22

Просмотры

Design neural network to find inputs with highest probability of class

I am designing a neural network for classification with the aim to find the inputs with the highest probability that they belong to one of two classes. There are two classes, class A and class B. I have a set of data of which I want to find the inputs that have the highest probability that they belong to class B. This is different to conventional classification in that I'm not interested in the correct labelling of all inputs. I'm only interested in the correct labelling of the inputs that are labelled with a high probability to belong to class B. So the accuracy of the network could be calculated like this: Train the neural network Feed the validation data into the network Sort the resulting outputs, together with the known targets, by the returned probability for class B Take the top N samples, e.g. top 1% (now we have the outputs with the highest probability for class B) Count how many of the taken samples were actually of class B The accuracy is the number of actual instances of class B counted, divided by the number of samples taken N Say, we have a simple network like this: model = keras.Sequential([ keras.layers.Dense(7, input_dim=len(inputs_training[0]), activation=tf.nn.relu, kernel_regularizer=keras.regularizers.l2(0.0)), keras.layers.Dense(7, activation=tf.nn.relu, kernel_regularizer=keras.regularizers.l2(0.000001)), keras.layers.Dense(7, activation=tf.nn.relu, kernel_regularizer=keras.regularizers.l2(0.000001)), keras.layers.Dense(1, activation=tf.nn.sigmoid, kernel_regularizer=keras.regularizers.l2(0.00000)) ]) model.compile(optimizer='adam', loss=binary_crossentropy, metrics=['accuracy']) model.fit( np.array(inputs_training), np.array(targets_training), epochs=15, verbose=0, class_weight={0: 1, 1: 4} ) The problem is that, the more features (inputs) I add, the less accurate the prediction becomes - even though each features performs well on it's own. For example, I can use a single feature that gives me 40% accuracy in the top 1%. If I add two more features that perform similarly on their own, the accuracy drops to, say, 25-30%. Class B makes about 15% of the data. The second problem is that the accuracy in the top 1% fluctuates a lot. I have tried: Changing the number of layers / neurons, epochs Changing the class weights Changing regularisation parameters, including using l1 Trying different loss functions I speculate that none of this works because the neural network is optimising for the classification of all inputs, not optimizing to produce the highest accuracy in the top 1%. Is there a way how I can stir the neural network to optimize so that the most probable results are correct, but the remaining 99% can tend to be mislabelled? Demo code: https://pastebin.com/CnDpCjdp
ig-dev
1

голосов
1

ответ
907

Просмотры

Базэл ошибка: «Нет испытаний цели не были найдены, но тестирование было предложено»

У меня есть небольшое задание, где я использовал TensorFlow для создания музыки: https://github.com/tensorflow/magenta Когда я запускаю код --- тест Базэл // пурпурного: все я получаю следующее сообщение об ошибке: Предупреждение: / Главная / админы / .cache / Базэл / _bazel_admin / fb30f33370a5b97d4f9b1dde06f8f344 / внешний / Protobuf / protobuf.bzl: 90: 19: Переменные HOST_C и DATA_C осуждаются в пользу строк "хозяин" и "данные" соответственно. ПРЕДУПРЕЖДЕНИЕ: /home/admin/.cache/bazel/_bazel_admin/fb30f33370a5b97d4f9b1dde06f8f344/external/protobuf/protobuf.bzl:96:28: Переменные HOST_C и DATA_C осуждаются в пользу строк «хозяин» и «данные» соответственно. INFO: Найдено 2 цели и 0 целей тестирования ... INFO: Прошедшее время: 4.977s, критический путь: 0.66s ОШИБКА: Нет испытаний цели не были найдены, но тестирование было предложено.
han
1

голосов
1

ответ
2.4k

Просмотры

Tensorflow Dataset API с HDFS

Мы сохранили список * .tfrecord файлов в директории HDFS. Я хотел бы использовать новый набор данных API, но единственный пример, приведенный является использование старой filequeue и string_input_producer (https://www.tensorflow.org/deploy/hadoop). Эти методы трудно генерировать эпохи среди других вещей. Есть ли способ использовать HDFS с Dataset API?
Lukeyb
1

голосов
2

ответ
39

Просмотры

How to load a python module from a string?

Учитывая строку оптимизатора = «tensorflow.train.ProximalAdagradOptimizer» Как можно достичь следующим образом: импорт tensorflow Оптимизатор = tensorflow.train.ProximalAdagradOptimizer () Контекст Чтобы добавить контекст к моему конкретному случаю использования (для решения одной из комментариев): Я м пытается создать текстовый конфиг, который описывает, как моя модель: была настроена (в частности, оценка). Таким образом, я могу легко повторно создать экземпляр их после тренировки, если я хочу, чтобы обучить его более или делать другие вещи с ними. Я не нашел простой способ сделать это; Я не ищу saved_model для этого. Мой случай использования легко перезарядить моделей до их совершения в saved_model состоянии. Конфигурации будет выглядеть следующим образом: model_config = { "типа": "DNNClassifier", "n_classes": 10, "feature_columns": [{ "Numeric_column": [{ "ключ": "х"}, { "ключ": "у"}]}], "Оптимизатор": { "AdamOptimizer": { "learning_rate": 1.0}}} Учитывая, что «конфигурация» Я могу создать экземпляр моего оценщик с: оценщиком = load_estimator (model_config, model_dir = model_dir) значение типа будет преобразовано в tensorflow.estimator.DNNClassifier. Значение feature_column [0]. разрешило бы к tensorflow.feature_column.numeric_column. Наконец, значение оптимизатора. разрешило бы к tensorflow.train.AdamOptimizer. numeric_column. Наконец, значение оптимизатора. разрешило бы к tensorflow.train.AdamOptimizer. numeric_column. Наконец, значение оптимизатора. разрешило бы к tensorflow.train.AdamOptimizer.
rodrigo-silveira
1

голосов
2

ответ
34

Просмотры

Как укладывать сверточного слоя и LSTM с помощью Tensorflow2.0 альфа?

Я пытаюсь реализовать нейронную сеть для запуска задачи NLP с сверточным слоем с последующим вверх с помощью LSTM слоя. Я в настоящее время экспериментирует с новым Tensorflow 2.0, чтобы сделать это. Однако, при построении модели, я обнаружил ошибку, что я не мог понять. # Входная форма обучения и набора валидации (1000, 1, 512), (500, 1, 512) Модель Модель = keras.Sequential () model.add (keras.layers.InputLayer (input_shape = (None, 512)) ) model.add (keras.layers.Conv1D (128, 1, активация = "Relu")) model.add (keras.layers.MaxPooling1D ((2))) model.add (keras.layers.LSTM (64, активация = "TANH")) model.add (keras.layers.Dense (6)) model.add (keras.layers.Activation ( "SoftMax")) Этот InvalidArgumentError ошибка: Пытались укладывать элементы пустой список с не полностью -определенной element_shape: [, 64] [[{{узел unified_lstm_16 / TensorArrayV2Stack / TensorListStack}}]] [Оп: __ inference_keras_scratch_graph_26641] Сначала я попытался проверить, есть ли какие-либо вопросы, касающиеся реализации слой Conv1D с LSTM слоем. Я нашел этот пост, что предложенный так, что я видоизмененный слой между сверточным слоем и LSTM слоем. Но это все еще не работает, и я получил другую ошибку вместо этого. Это сообщение кажется похоже, но он не использует Tensorflow 2,0 и не ответить до сих пор. Я также нашел этот пост, который имеет такое же намерение укладки сверточных и LSTM слоев. Но он использует Conv2D вместо Conv1D. Это сообщение также предлагает использовать видоизмененный выход сверточного слоя со встроенным уровнем, который называется Reshape. Тем не менее, я до сих пор получил ту же ошибку. Я также попытался указать input_shape в LSTM слое. Модель = keras.Sequential () модели. Добавить (keras.layers.InputLayer (input_shape = (None, 512))) model.add (keras.layers.Conv1D (128, 1, активация = "Relu")) model.add (keras.layers.MaxPooling1D ((2 ))) model.add (keras.layers.LSTM (64, активация = "TANH", input_shape = (Не, 64))) model.add (keras.layers.Dense (6)) model.add (keras.layers .Activation ( «SoftMax»)) И я до сих пор получил ту же ошибку, в конце концов. Я не уверен, если я понимаю, как стек 1-мерный сверточного слой и LSTM слой. Я знаю, что TF2.0 еще альфа, но сделал кто-то может указать на то, что мне не хватает? заранее спасибо Плотные (6)) model.add (keras.layers.Activation ( "SoftMax")) И я до сих пор получил ту же ошибку, в конце концов. Я не уверен, если я понимаю, как стек 1-мерный сверточного слой и LSTM слой. Я знаю, что TF2.0 еще альфа, но сделал кто-то может указать на то, что мне не хватает? заранее спасибо Плотные (6)) model.add (keras.layers.Activation ( "SoftMax")) И я до сих пор получил ту же ошибку, в конце концов. Я не уверен, если я понимаю, как стек 1-мерный сверточного слой и LSTM слой. Я знаю, что TF2.0 еще альфа, но сделал кто-то может указать на то, что мне не хватает? заранее спасибо
Imperator123
1

голосов
2

ответ
32

Просмотры

Как найти число не-нулей в массиве Keras

Я пытаюсь найти количество нулей в пользовательской функции потерь для Keras. Защиту root_mean_squared_error (y_true, y_pred): Если эта функция потерь вводится здесь: model.compile (оптимизатор = синг, потеря = root_mean_squared_error, метрика = [metrics.mse, root_mean_squared_error]) Я пытаюсь найти число ненулевых значений в массиве «y_true» и разделить мой номер на эту величину. Как я могу найти количество ненулевых элементов в y_true?
Rehaan Ahmad
2

голосов
2

ответ
192

Просмотры

TensorFlow 2,0 Keras: Как написать резюме изображений для TensorBoard

Я пытаюсь настроить распознавание образов CNN с TensorFlow 2,0. Для того, чтобы иметь возможность анализировать мое изображение увеличение я хотел бы видеть изображения кормлю в сеть в tensorboard. К сожалению, я не могу понять, как сделать это с TensorFlow 2.0 и Keras. Я также не реально найти документацию по этому вопросу. Для простоты, я показываю код в MNIST. Например, Как бы я добавить резюме изображений здесь? импорт tensorflow в ТФ (x_train, y_train), _ = tf.keras.datasets.mnist.load_data () Защиту шкала (изображение, метка): возвращение tf.cast (изображение, tf.float32) / 255,0, метка Защиту увеличения (изображения , этикетка): возврат изображения, метка # ничего не делать ата набор данных = tf.data.Dataset.from_tensor_slices ((x_train, y_train)) набор данных = dataset.map (шкала) .map (увеличить) Пакетную (32) модели = тс. keras.models.Sequential ([tf.keras.layers.Flatten (input_shape = (28,
andy
1

голосов
2

ответ
71

Просмотры

Tensorflow умножение констант производительность медленнее, чем tf.random

Я использую Tensorflow для нек-DL вычисления, и я бегу в поведении я не понимаю. Я проверяю умножение квадратной матрицы сам по себе: tf.matmul (а, а): когда матрица создается с tf.constant, когда матрица случайным образом инициализируется при каждом запуске Я ожидаю, что первый случай должен иметь некоторые накладные расходы для передачи исходных данных, 100 МБ (5000x5000 матрицы с использованием float32), но тогда исполнением второго случая должна быть немного медленнее из-за случайную инициализацию при каждом запуске. Однако то, что я вижу в том, что умножение на константу гораздо медленнее, даже на последовательных прогонов в одной и той же сессии. Код импорта tensorflow в ТФ импорта NumPy как нп из timeit импорта timeit импорта зева os.environ [ "TF_CPP_MIN_LOG_LEVEL"] = "2" # NoSpam SIZE = 5000 NUM_RUNS = 10 а = нп.
Anna-Chiara Bellini
1

голосов
1

ответ
378

Просмотры

Нейронные сети высокого доверия Неточность Предсказания

Я обучаемый нейронная сеть на задаче классификации, и она учится, хотя его точность не высока. Я пытаюсь выяснить, какие испытания Примеров не уверен, так что я могу получить еще некоторое представление о том, что происходит. Для того, чтобы сделать это, я решил использовать стандартные SoftMax вероятности в Tensorflow. Чтобы сделать это, я назвал tf.nn.softmax (логит-анализ), и используются вероятности, предоставленные здесь. Я заметил, что много раз вероятность была 99%, но прогноз все еще не так. Таким образом, даже тогда, когда я только рассмотреть примеры, которые имеют предсказание вероятность выше, чем 99%, я получаю плохую точность, только 2-3 процентов выше, чем моя первоначальная точность. Кто-нибудь есть какие-либо идеи относительно того, почему сеть настолько уверена в неправильных предсказаниях? Я еще новичок в глубокое обучение, поэтому ищу некоторые идеи, чтобы помочь мне. Кроме того, используют SoftMax вероятностей правильного способ сделать определение доверия прогнозов от нейронной сети? Если нет, то есть ли лучший способ? Спасибо! Edit: С ниже ответ, кажется, что моя сеть просто работает плохо. Есть еще один способ, чтобы определить, какие предсказания сетевой марка, вероятно, будет неправильно к тому же, глядя на доверии (поскольку доверие не кажется, работает хорошо)?
hockeybro
1

голосов
0

ответ
118

Просмотры

Как загрузить tensorflow metagraph с помощью C ++

Я хочу, чтобы загрузить metagraph с помощью кода C ++, а затем контрольной точки весов. Чтобы загрузить metagraph, я сначала создать пб файл из него с tf.Session () как Sess: new_saver = tf.train.import_meta_graph (ROOT_DIR + meta_graph) tf.train.write_graph (sess.graph_def, ROOT_DIR, export_pb, as_text = False) Затем я использую селективную регистрацию для создания ОПС и ядра необходимы Базэл-бен / tensorflow / питон / инструменты / print_selective_registration_header --graphs = Xinmei / rnn_dict / model_test.pb> tensorflow / ядро ​​/ рамки / ops_to_register.h Далее я компилировать мой исполняемым с помощью этой регистрации. Тем не менее, когда я запустить исполняемый файл на моем Android устройства, это говорит об ошибке создания график: Недопустимый аргумент: Нет OpKernel был зарегистрирован для поддержки Op «Const» с этим ATTRS. Зарегистрированные устройства: [CPU], Зарегистрированные ядра: [[Узел: сохранение / RestoreV2_8 / shape_and_slices = Const [_output_shapes = [[1]], DTYPE = DT_STRING, значение = Тензор] ()]] Как я могу загрузить metagraph? Мотивом этого является то, что я хочу продолжить обучение модели на моем Android устройства.
PKUEcho
1

голосов
0

ответ
242

Просмотры

Как я могу получить global_step в MonitoredTrainingSession?

Я бегу распределенная модель mnist в распределенной TensorFlow. Я хотел бы контролировать «вручную» эволюцию global_step для отладки. Что такое лучший и чистый способ получить глобальный шаг в распределенной установке TensorFlow? Мой код ниже ... с tf.device (устройство): изображения = tf.placeholder (tf.float32, [None, 784], имя = 'image_input') метки = tf.placeholder (tf.float32, [None], имя = '') label_input данных = read_data_sets (FLAGS.data_dir, one_hot = False, fake_data = False) = логит-анализ mnist.inference (изображения, FLAGS.hidden1, FLAGS.hidden2) потеря = mnist.loss (логит-анализ, этикетки) потеря = tf.Print (потеря, [потеря], сообщение = "потеря =") train_op = mnist.training (потеря, FLAGS.learning_rate) крючки = [tf.train.StopAtStepHook (last_step = FLAGS.nb_steps)] с tf.train.
Malo Marrec
1

голосов
0

ответ
55

Просмотры

Tensorboard исключение с summary.image формы [-1, 125, 128, 1] коэффициентов MFCC

После этого руководства, я преобразования тензора [batch_size, 16000, 1] MFCC с использованием метода, описанного в ссылке: Защиту gen_spectrogram (WAV, SR = 16000): # A 1024-точка с STFT кадров 64 мс и 75% перекрытием. stfts = tf.contrib.signal.stft (WAV, frame_length = 1024, frame_step = 256, fft_length = 1024) спектрограммы = tf.abs (stfts) # Деформация линейной шкалы спектрограммы минуте Mel-шкалы. num_spectrogram_bins = stfts.shape [-1] .value lower_edge_hertz, upper_edge_hertz, num_mel_bins = 80.0, 7600,0, 80 linear_to_mel_weight_matrix = tf.contrib.signal.linear_to_mel_weight_matrix (num_mel_bins, num_spectrogram_bins, sample_rate, lower_edge_hertz, upper_edge_hertz) mel_spectrograms = tf.tensordot (спектрограммы, linear_to_mel_weight_matrix, 1) mel_spectrograms.set_shape (spectrograms.shape [: - 1]. конкатенации (linear_to_mel_weight_matrix.shape [-1:])) # Вычислить стабилизированный журнал, чтобы получить войти величины Mel-шкалу спектрограммы. log_mel_spectrograms = tf.log (mel_spectrograms + 1e-6) # Вычисляем коэффициенты MFCC от log_mel_spectrograms и принять первые 13. возвратные tf.contrib.signal.mfccs_from_log_mel_spectrograms (log_mel_spectrograms) [...: 13] Затем я перекроить вывод, что [batch_size, 125, 128, 1]. Если я посылаю, что к tf.layers.conv2d, вещи, кажется, работает хорошо. Однако, если я пытаюсь tf.summary.image, я получаю следующее сообщение об ошибке: печать (спецификации) // => тензор ( "спектрограммы / Reshape: 0", форма = (?, 125, 128, 1), DTYPE = float32) tf.summary.image ( 'спекуляция', спецификация) Вызванный оп u'spectrogram / КК / rfft», определенный на: Файл«/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2. _extract_stack () # pylint: отключение = InvalidArgumentError защищенного доступа (смотрите выше TRACEBACK): Входной размера 4 должен иметь длину не менее 512, но получил: 320 Не знаю, где начать поиск неисправностей этого. Что я здесь отсутствует?
rodrigo-silveira
1

голосов
0

ответ
485

Просмотры

Reading HDF5 inputs in TensorFlow

Я обучение нейронной сети в TensorFlow, что в настоящее время принимает в качестве входных данных в формате PNG. В то время как это работает хорошо, я хотел бы перейти к использованию входов формата HDF5 для большей гибкости, но у меня возникают проблемы с адаптацией коды. В обоих случаях, текстовый файл содержит список путей для всех файлов PNG / H5, которые должны быть использованы в качестве обучающих примеров, один из примеров в каждой строке. Моя упрощенная версия текущего кода для PNG файлов, который работает следующим образом: класс ImageReader (объект): Защита __init __ (я, IMAGE_LIST, коорд): «»»IMAGE_LIST: строковый массив путей обучения изображения. коорд: координатор очереди TensorFlow. ''»Self.image_list = IMAGE_LIST self.coord = COORD self.images = tf.convert_to_tensor (self.image_list, DTYPE = tf.string) self.queue = tf.train.
user2406671
1

голосов
0

ответ
304

Просмотры

потеря Tensorflow NaN во время тренировки

Я сделал нейронную сеть, которая в основном копия учебника на сайте tensorflow (https://www.tensorflow.org/tutorials/layers). Единственное отличие состоит в том, что моя нейронной сеть представляет собой 3D-ко сеть и не 2D ко чистые. У меня было много ошибок в отношении моих данных, и я не уверен, также ли это одна ошибка из моих данных. NanLossDuringTrainingError: потеря NaN во время тренировки. Перед тем, что ошибка появляется tensorflow распечатывает вероятности того, что имеет значение только 1: вероятности = [[1] [1] [1] ... [1]...] Она заканчивается с небольшим уведомлением об ошибке: ОШИБКА: tensorflow : Модель расходились с потерей = NaN. Я сделал суть GitHub для вас, чтобы взглянуть на код и сообщение об ошибке. https://gist.github.com/hjkhjk1999/df11c401578f4da83214fba16c210e45 Я также предоставляет ссылку идентификации контента в данных я использую. Мои данные дали мне так много ошибок, что кто-то должен взглянуть на него. https://www.dropbox.com/s/iwnvnu57yktdf8f/Preprocessed%20Data.rar?dl=0
Simon Zeng
1

голосов
0

ответ
22

Просмотры

Почему и когда делает информацию формы тензора в неспецифической?

Я нашел кусок кода, как это: Y = tf.strided_slice (данные, [0, г * num_steps + 1], [batch_size, (г + 1) * num_steps + 1]) y.set_shape ([batch_size, num_steps]) в разъяснении на tf.Tensor.set_shape () говорит, set_shape может сделать информацию более конкретной форме. Но почему информация форма Дейты здесь не конкретно? Когда же информация Тензора в неспецифической?
setail
1

голосов
0

ответ
205

Просмотры

TensorFlow conv2d медленно по сравнению с другими

Я пытаюсь использовать ТФ, чтобы сделать некоторую фильтрацию. У меня 60 изображений размера 1740 х 2340 и Guassian фильтра с размером 16 х 16. Я управлял conv2d, как махи = [1,1,1,1] data_ph = tf.constant (данные, tf.float32) filt_ph = тс .constant (ФИЛТО, tf.float32) data_format = ко 'NCHW' = tf.nn.conv2d (data_ph, filt_ph, шагает, 'ЖЕ', data_format = data_format), где data_ph = filt_ph = Я пытался использовать заполнители вместо констант и я также пытался использовать читатель, такие как tf.FixedLengthRecordReader. Я повторил эксперименты несколько раз в перспективе. Первые работает в 12 секунд и subsequents работать в 4-х секунд с использованием констант и 5 секунд с использованием заполнителей. Тот же самый эксперимент побежал в mxnet занимает всегда 1,6 сек и в MatLab 1.5 секунды. Во всех случаях я размещая вычисления на GPU, а 8 Гб Quadro K5200.
user3347617
1

голосов
0

ответ
103

Просмотры

Why match_filenames_once function returns a local variable

Я пытался понять механизм tensorflow для чтения изображений с использованием очередей. Я использую код найден здесь, которого основные части: filename_queue = tf.train.string_input_producer (tf.train.match_filenames_once ( 'D:. / Dataset / * JPG')) image_reader = tf.WholeFileReader () имя_образа, image_file = image_reader.read (filename_queue) изображение = tf.image.decode_jpeg (image_file) с tf.Session () в качестве Sess:. tf.global_variables_initializer () запустить () коорд = tf.train.Coordinator () = резьба tf.train.start_queue_runners (коорд = коорд) image_tensor = sess.run ([изображение]) печать (image_tensor), которые в действительности не делает ничего особенного. Я получаю сообщение об ошибке: OutOfRangeError (смотри выше TRACEBACK): FIFOQueue «_0_input_producer» замкнуто и не имеет достаточных элементов (запрошенные 1, текущий размер 0), которые приводят к поиску пропавших изображений, неправильно папку, неправильный шаблон Глоб и т.д., пока не обнаружил, что tensorflow в основном означало это: «Вы должны инициализировать локальные переменные также»! Помимо того, что код, казалось, работать в оригинальной сущности только с этой заменой:. Tf.initialize_all_variables () работать () вместо tf.global_variables_initializer () работать () в моем коде не работает.. Она производит ту же самую ошибку. Я предполагаю, что это изменило реализацию initialize_all_variables () с tensorflow развития (я использую 1.3.0), так как здесь он упоминает, что он инициализировать локальные переменные также. Таким образом, окончательный вывод я пришел с, что я должен инициализировать локальные переменные также. И мой код работал. Сообщение об ошибке ужасно вводит в заблуждение (что не помогло вообще), но в любом случае к основной части я немного смущен, почему я получаю локальную переменную по match_filenames_once. В документации нет никакого упоминания об этом (я не уверен, что он должен хотя). Могу ли я всегда собираюсь получить местный от этого match_filenames_once? Могу ли я контролировать это каким-то образом?
Eypros
1

голосов
0

ответ
101

Просмотры

Как восстановить модель в распределенной tensorflow?

Я тренировался модель с использованием 4 CPU machines.For восстанавливающего это мне нужно сделать, чтобы сохранить модель на каждой машине? И как я могу получить сохраненное состояние от каждого процессора на главном узле, так что он может быть восстановлен? В настоящее время, если я пытаюсь восстановить ошибку модели я обращенная является tensorflow.python.framework.errors_impl.NotFoundError: Неудачная конструктор TensorSliceReader: Не удалось найти какие-либо файлы, соответствующего ./newsvr.ckpt
Rajendra
1

голосов
0

ответ
18

Просмотры

«Не LookupAlignConvolution2d» нет объекта «_convolution_op атрибута» ошибка

Я работаю с проектом ТФ-lcnn (https://github.com/ildoonet/tf-lcnn). Я построил tensorflow из источников (1.4.1), и я использую python3 запустить команду python3 train.py. Эта проблема в том, что, когда я бегу сказал команда, которую я получаю: AttributeError: объект «LookupAlignConvolution2d» не имеет атрибута «_convolution_op» Я пробовал версии tensorflow (1.3 и 1.4) и ничего не получает проект работать. Custom_op был должным образом и работает связаны между собой. Инструкции от проекта не утверждают, что вы должны следовать его указаниям первым затем построить tensorflow. Он также не выражает сборку конфигурации, который он использовал. Я попробовал несколько различных подходов, но я уверен, что есть что-то мне не хватает или делаю неправильно. Любая помощь будет оценена. Я могу размещать дополнительную информацию по запросу. Заранее спасибо!
A.McIntosh
1

голосов
0

ответ
211

Просмотры

tensorflow case error: Invalid argument: assertion failed: None of the conditions evaluated as True

make_initializer (tr_data)) г = sess.run (it_x.get_next ()) # это работает, однако: г = sess.run (пример (2)) печати (ул (г)) приводит к следующей ошибке: 2018-01- 05 19: 06: 49,022920: Я tensorflow / ядро ​​/ ядра версии / logging_ops.cc: 79] trans_type [2] [1] 2018-01-05 19: 06: 49,023131: W tensorflow / ядро ​​/ рамки / op_kernel.cc: 1192 ] Недопустимый аргумент: утверждение не удалось: [ни одно из условий оценивается как true. Условия: (Equal_1: 0, Equal_2: 0, Equal_3: 0, Equal_4: 0, Equal_5: 0), значения:] [0 0 1 0 0] [[Узел: корпус / If_0 / Assert_1 / AssertGuard / Утверждай = Утверждай [ Т = [DT_STRING, DT_BOOL], обобщать = 5] (случай / If_0 / Assert_1 / AssertGuard / Утверждай / переключатель, корпус / If_0 / Assert_1 / AssertGuard / Утверждай / data_0, случай / If_0 / Assert_1 / AssertGuard / Утверждай / Switch_1)] ] в то время как оператор tf.Print четко печатает trans_type = 2 и даже показывает, что tf.equal оценивается как истина. Какие' чем проблема здесь, и что еще более важно - как даже отлаживать его, когда tf.Print заявление дает запутанные результаты? EDIT: изменено на минимальный пример. Это, кажется, связано с Dataset / итераторов, просто вызывая метод работает отлично.
Łukasz Sromek
1

голосов
1

ответ
497

Просмотры

Tensorflow 1.4 двунаправленного RNN не работает, как ожидалось

Я пытаюсь использовать двунаправленный РНН и передавать вывод через CNN для классификации текста. Тем не менее, я получаю все виды ошибок формы с двунаправленной RNN. Хотя, если я использую два динамических РННА с обратными оп во втором слое, по-видимому, отлично работают: Вот двунаправленная РНН код, который не работает для меня: # Двунаправленного LSTM слой с tf.name_scope ( «двунаправленный LSTM»): lstm_fw_cell = tf.nn.rnn_cell.BasicLSTMCell (hidden_size, forget_bias = 1,0) lstm_bw_cell = tf.nn.rnn_cell.BasicLSTMCell (hidden_size, forget_bias = 1,0) self.lstm_outputs _ = tf.nn.bidirectional_dynamic_rnn (lstm_fw_cell, lstm_bw_cell, самостоятельно. embedded_chars, sequence_length = self.seqlen, DTYPE = tf.float32) self.lstm_outputs = tf.concat (self.lstm_outputs, sequence_length = self.seqlen, DTYPE = tf.float32) self.lstm_outputs_bw = array_ops.reverse_sequence (TMP, seq_lengths = self.seqlen, seq_dim = 1) Соединить выходы self.lstm_outputs = tf.add (self.lstm_outputs_fw, self.lstm_outputs_bw, Name = «lstm_outputs») Что я делаю неправильно с двунаправленной RNN? Я передаю выход это CNN и ошибка возникает при вычислении Здесь остальная часть кода: # Свертка + maxpool слой для каждого размера фильтра pooled_outputs = [] для г, в filter_size Перечислим (filter_sizes): с tf.name_scope ( "Conv-maxpool-% S" % filter_size): # Свертка слой filter_shape = [filter_size, hidden_size, 1, num_filters] W = tf.Variable (tf.truncated_normal (filter_shape, StdDev = 0,1),
MLNINJA
1

голосов
1

ответ
267

Просмотры

ValueError: Ошибка при проверке целевого: ожидается, dropout_82 иметь 3 размеры, но получили массив с формой (7, 7500)

Привет я должен реализовать CNN, я новичок с Keras и Tensorflow поэтому я извинялся, если я делаю ошибку. Это то, что я делаю: набор данных является массив NumPy (23, 4800000), #number звуковых дорожек х #number образцов. Таким образом, я расщепляюсь набором данных в поезде (10, 4800000), проверка (7, 4800000) и тест (6, 4800000) процесс свертки вдоль столбцов, так что я должен изменить вход в системе: X = np.expand_dims (поезд, оси = 2) Y = np.expand_dims (действует, ось = 2) код первой части является CNN: CNN = Последовательное () cnn.add (Conv1D (40, 80, input_shape = (4800000, 10))) cnn.add (MaxPooling1D (pool_size = 2)) cnn.add (Conv1D (40, 8000)) cnn.add (MaxPooling1D (pool_size = 20)) cnn.add (Flatten ()) CNN. 4783920) 0 =============================================== ================== Всего Титулы: 12,832,080 обучаемый PARAMS: 12,832,080 Non-обучаемый PARAMS: 0 _______________________________ cnn.compile (убыток = 'mean_squared_error', оптимизатор = 'адам') спп .Поставить (X, Y) и ошибка: ValueError: ошибка при проверке ввода: ожидается conv1d_3_input иметь форму (None, 4800000, 10), но получили массив с формой (4800000, 10, 1) Я не очень понимаю, что это означает, пожалуйста, кто-то может мне помочь? Так что в эти дни я пытался упростить свою работу. X_train, X_valid = (7,7500,1), 7 количество дорожек, 7500 образцов и 1 канал y_train, y_valid = (7,7500), для каждого из 7 треков соответствует значение вероятности в любом образце. Модель = Последовательное () model.add (Conv1D (40, 80, активация = 'Relu', input_shape = (7500,
shawk
1

голосов
0

ответ
383

Просмотры

Как отключить cuDNN или заставить его иметь детерминированное поведение при использовании Keras с TensorFlow бэкэндом?

Я использую Keras с TensorFlow бэкэндом на GPU. Как я могу отключить cuDNN или заставить его иметь детерминированное поведение? Существует четкий способ Theano бэкэнда как уже упоминался здесь: https://github.com/keras-team/keras/issues/2479 Но я не могу найти подобный путь TensorFlow. Любая помощь очень ценится.
Behrouz
1

голосов
2

ответ
186

Просмотры

Tensorflow Перемешать Batch Non Детерминированный

Я пытаюсь получить детерминированное поведение от tf.train.shuffle_batch (). Я мог бы, вместо этого, используйте tf.train.batch (), который работает отлично (всегда одинаковый порядок элементов), но мне нужно, чтобы получить примеры из нескольких ТФ-записей и поэтому я застрял с shuffle_batch (). Я использую: random.seed (0) np.random.seed (0) tf.set_random_seed (0) data_entries = tf.train.shuffle_batch ([данных], batch_size = batch_size, NUM_THREADS = 1, емкость = 512, семян = 57, min_after_dequeue = 32) но каждый раз, когда я перезагрузить мой сценарий я получаю немного разные результаты (не совсем разные, но около 20% элементов находятся в неправильном порядке). Что мне не хватает? Edit: решаемый его! Смотрите мой ответ ниже!
user667804
1

голосов
1

ответ
818

Просмотры

Как вы ROI-Pooling на территориях меньше, чем размер цели?

Я в настоящее время пытается получить быструю сеть R-CNN здесь работать в окнах с tensorflow. Для этого, я хотел бы повторно реализовать ROI-Pooling слой, так как он не работает в окнах (по крайней мере для меня. Если у вас есть какие-либо советы по портированию на окна с tensorflow, я очень ценю ваши комментарии!). В соответствии с этим веб-сайт, что вы делаете, вы принимаете предлагаемый вами Отдача от объекта карты и максимального пула его содержание до фиксированного размера выходного сигнала. Этот фиксированный выходной сигнал необходим для следующих полностью соединенных слоев, так как они только принимают входной сигнал фиксированного размера. Проблема сейчас является follwing: После того, как conv5_3, последний слой сверточного перед тем Roi объединения, окно, которое вытекает из предложения сети региона, в основном, 5x5 пикселей. Это совершенно нормально, так как объекты, которые я хочу, чтобы обнаружить, как правило, имеют размеры 80x80 пикселей в исходном изображении (коэффициент понижающей дискретизации за счет объединения 16). Тем не менее, у меня теперь есть макс бассейне площадь 5х5 пикселей и увеличить его до 7x7, целевого размера для ROI-Pooling. Моя первая попытка просто делать интерполяции не работает. Кроме того, заполнение нулями не работает. Я всегда кажется, чтобы получить те же результаты для моих классов. Что я делаю неправильно? Я не хочу, чтобы изменить размеры любого слоя, и я знаю, что моя обучен сети в целом работает, потому что у меня есть эталонная реализация работает в Linux на моем наборе данных. Большое спасибо за ваше время и усилия :) Моя первая попытка просто делать интерполяции не работает. Кроме того, заполнение нулями не работает. Я всегда кажется, чтобы получить те же результаты для моих классов. Что я делаю неправильно? Я не хочу, чтобы изменить размеры любого слоя, и я знаю, что моя обучен сети в целом работает, потому что у меня есть эталонная реализация работает в Linux на моем наборе данных. Большое спасибо за ваше время и усилия :) Моя первая попытка просто делать интерполяции не работает. Кроме того, заполнение нулями не работает. Я всегда кажется, чтобы получить те же результаты для моих классов. Что я делаю неправильно? Я не хочу, чтобы изменить размеры любого слоя, и я знаю, что моя обучен сети в целом работает, потому что у меня есть эталонная реализация работает в Linux на моем наборе данных. Большое спасибо за ваше время и усилия :)
Martin
1

голосов
0

ответ
329

Просмотры

Inferior performance of Tensorflow compared to sklearn

I'm comparing the performance of Tensorflow with sklearn on two datasets: A toy dataset in sklearn MNIST dataset Here is my code (Python): from __future__ import print_function # Import MNIST data from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("/tmp/data/", one_hot=True) import tensorflow as tf from sklearn.datasets import load_digits import numpy as np # digits = load_digits() # data = digits.data # labels = digits.target # convert to binary labels # y = np.zeros((labels.shape[0],10)) # y[np.arange(labels.shape[0]),labels] = 1 x_train = mnist.train.images y_train = mnist.train.labels x_test = mnist.test.images y_test = mnist.test.labels n_train = mnist.train.images.shape[0] # import pdb;pdb.set_trace() # Parameters learning_rate = 1e-3 lambda_val = 1e-5 training_epochs = 30 batch_size = 200 display_step = 1 # Network Parameters n_hidden_1 = 300 # 1st layer number of neurons n_input = x_train.shape[1] # MNIST data input (img shape: 28*28) n_classes = 10 # MNIST total classes (0-9 digits) # tf Graph input X = tf.placeholder("float", [None, n_input]) Y = tf.placeholder("float", [None, n_classes]) # Store layers weight & bias weights = { 'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])), 'out': tf.Variable(tf.random_normal([n_hidden_1, n_classes])) } biases = { 'b1': tf.Variable(tf.random_normal([n_hidden_1])), 'out': tf.Variable(tf.random_normal([n_classes])) } # Create model def multilayer_perceptron(x): # Hidden fully connected layer with 256 neurons layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) # Activation layer_1_relu = tf.nn.relu(layer_1) # Output fully connected layer with a neuron for each class out_layer = tf.matmul(layer_1_relu, weights['out']) + biases['out'] return out_layer # Construct model logits = multilayer_perceptron(X) # Define loss and optimizer loss_op = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y)) + lambda_val*tf.nn.l2_loss(weights['h1']) + lambda_val*tf.nn.l2_loss(weights['out']) optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) train_op = optimizer.minimize(loss_op) # Test model pred = tf.nn.softmax(logits) # Apply softmax to logits correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(Y, 1)) # Calculate accuracy accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) # Initializing the variables init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) # Training cycle for epoch in range(training_epochs): avg_cost = 0. total_batch = int(n_train/batch_size) # Loop over all batches ptr = 0 for i in range(total_batch): next_ptr = ptr + batch_size if next_ptr > len(x_train): next_ptr = len(x_train) batch_x, batch_y = x_train[ptr:next_ptr],y_train[ptr:next_ptr] ptr += batch_size # Run optimization op (backprop) and cost op (to get loss value) _, c = sess.run([train_op, loss_op], feed_dict={X: batch_x, Y: batch_y}) # Compute average loss avg_cost += c / total_batch # Display logs per epoch step if epoch % display_step == 0: print("Epoch:", '%04d' % (epoch+1), "cost={:.9f}".format(avg_cost)) print("Optimization Finished!") print("Accuracy on training set: ", accuracy.eval({X:x_train,Y:y_train})) print("Accuracy on testing set:", accuracy.eval({X: x_test, Y: y_test})) print("Experimenting sklearn...") # now experiment with sklearn from sklearn.datasets import load_digits import numpy as np from sklearn.neural_network import MLPClassifier import time # use MLP t_start = time.time() print('fitting MLP...') clf = MLPClassifier(solver='adam', alpha=1e-5, hidden_layer_sizes=(300,),max_iter=training_epochs) clf.fit(x_train,y_train) print('fitted MLP in {:.2f} seconds'.format(time.time() - t_start)) print('predicting...') labels_predicted = clf.predict(x_test) print('accuracy: {:.2f} %'.format(np.mean(np.argmax(y_test,axis=1) == np.argmax(labels_predicted,axis=1)) * 100)) The code is adapted from a github repository. For this testing, I'm using a traditional neural network (MLP) with only one hidden layer of size 300. Following is the result for the both datasets: sklearn digits: ~83% (tensorflow), ~90% (sklearn) MNIST: ~94% (tensorflow), ~97% (sklearn) I'm using the same model for both libraries. All the parameters (number of hidden layers, number of hidden units, learning_rate, l2 regularization constant, number of training epochs, batch size) and optimization algorithms are the same (Adam optimizer, beta parameters for Adam optimizer, no momentum, etc). I wonder if sklearn has done a magic implementation over tensorflow? Can anyone help answer? Thank you very much.
lenhhoxung
1

голосов
0

ответ
545

Просмотры

Reading data into tensorflow and creating Dataset with TF-slim

Мне нужно прочитать во многих «образов» из .txt файлов и хотите создать tensorflow набор данных с ними. В настоящее время я читаю в каждой матрице с numpy.loadtxt и создать массив формы [N_matrices, высота, ширина, N_channels], и подобный массив с меткой для каждой матрицы. Я создаю tensorflow набора данных из этих двух массивов с помощью входов = tf.convert_to_tensor (x_train, DTYPE = tf.float32) лейблы = tf.convert_to_tensor (y_train, DTYPE = tf.float32) DataSet = tf.data.Dataset.from_tensor_slices ({ «образ»: входы, «метка»: этикетки}) Теперь я хочу использовать следующую функцию для создания партии из этого набора данных (как это сделано здесь): Защита load_batch (набор данных, batch_size = bATCH_SIZE, высота = LENGTH_INPUT, ширина = LENGTH_INPUT): data_provider = slim.dataset_data_provider.DatasetDataProvider (набор данных) изображения, метка = data_provider.get ([ 'изображение', 'метка']) изображения, метки = tf.train.batch ([изображение, метка], batch_size = batch_size, allow_smaller_final_batch = True) вернуть изображения, ярлыки Однако, это дает мне следующее сообщение об ошибке: data_provider = slim.dataset_data_provider.DatasetDataProvider (набор данных) Файл "/home/.local/lib/python3.5/site-packages/tensorflow/contrib/slim/python/slim/data/dataset_data_provider.py", строка 85 в инициализации dataset.data_sources, AttributeError: объект «TensorSliceDataset» не имеет атрибута «data_sources» Почему я получаю эту ошибку, и как я могу это исправить? Я также предполагаю, что есть гораздо более эффективные способы для обработки ввода с тхт файлов tensorflow (или tensorflow-тонкий), но я нашел очень мало информации об этом. Как я могу генерировать свои наборы данных в лучшую сторону?
Corneel
1

голосов
0

ответ
280

Просмотры

TensorFlow: обработка вложенных тензоров с тусклым None

Цель Я проектирование нейронной сети в TensorFlow с подобным режимом работы как YOLO, то есть построения сетки по изображению, и делать прогнозы для каждой ячейки в сетке. У меня есть набор входных изображений, и количество этикеток на одно изображение, которое варьируется от изображения к изображению. Например, первое изображение имеет 5 этикетки, второе изображение имеет 10, третий имеет 2 и т.д. Предсказания моей нейронной сети отлиты в виде (# изображений) х (# ячеек сетки) х (5). Для каждого изображения в партии, я выбираю ячейки сетки, которые соответствуют их соответствующим позициям меток (с использованием tf.gather). Таким образом, я получаю кусок ячеек сетки, которые содержат соответствующие объекты. Я тогда функция потерь, который увеличивает потери для каждой метки в данном изображении, добавив все это в грандиозную полную потерю. Проблема Из-за нерегулярности в структуре (варьируя количество элементов по каждому измерению), я нахожу его очень трудно придумать подход, который имеет дело с такими вложенными структурами. Как правило, я бы просто огибать и ломтик Numpy массивов до тех пор, пока работа не будет сделана, но TensorFlow, кажется, не позволяет что (цикл по None тускнеет, нарезку и т.д.). Возможные решения? Некоторые вещи, которые я пробовал: Запуск простой и простой цикл по первому измерению предсказаний (# изображений) с помощью tf.range, а затем нарезка ввода (например, ломтик = метки [я] или аналогичный). Я получаю все виды ошибок позже на том, что не имеют смысла для меня (как TypeError: Значение передается параметр «начать» имеет DATATYPE float32 нет в списке разрешенных значений: int32, int64, даже если вход int32 ...) , Организация различных входных тензоров в гнездовой тензор с tf.stack, передать его в мою функцию потерь, и цикл по каждому изображению в пакете с использованием tf.unstack. TensorFlow поднял ошибки о размерах не равны, используя tf.scan и tf.map, зацикливание поверх первого измерения (т.е. изображения в пакете) вложенного тензора. Опять же, я не мог управлять, чтобы построить вложенный тензор в первую очередь вопрос Как правильно обрабатывать вложенные структуры с размерами None? Редактировать / Примечание: Я знаю, как заставить его работать только для одного изображения (т.е. не зацикливание по первому измерению), так что любое решение будет работать, что вызывает calculate_loss_function (х, у, г) несколько раз для каждого изображения в пакетном режиме. TensorFlow поднял ошибки о размерах не равны, используя tf.scan и tf.map, зацикливание поверх первого измерения (т.е. изображения в пакете) вложенного тензора. Опять же, я не мог управлять, чтобы построить вложенный тензор в первую очередь вопрос Как правильно обрабатывать вложенные структуры с размерами None? Редактировать / Примечание: Я знаю, как заставить его работать только для одного изображения (т.е. не зацикливание по первому измерению), так что любое решение будет работать, что вызывает calculate_loss_function (х, у, г) несколько раз для каждого изображения в пакетном режиме. TensorFlow поднял ошибки о размерах не равны, используя tf.scan и tf.map, зацикливание поверх первого измерения (т.е. изображения в пакете) вложенного тензора. Опять же, я не мог управлять, чтобы построить вложенный тензор в первую очередь вопрос Как правильно обрабатывать вложенные структуры с размерами None? Редактировать / Примечание: Я знаю, как заставить его работать только для одного изображения (т.е. не зацикливание по первому измерению), так что любое решение будет работать, что вызывает calculate_loss_function (х, у, г) несколько раз для каждого изображения в пакетном режиме.
MPA
1

голосов
0

ответ
137

Просмотры

Как взять скалярное произведение 2D разреженного тензора и 3D плотной матрицы в tensorflow?

Тензорная скалярное произведение 2D плотного тензора и 3D плотного тензора может быть сделано следующим образом: форма = [2,4,3] dense2d = tf.constant ([[0,1.0,2.0], [0,0,0], [0,0,0]]) dense3d = tf.placeholder ( "плавать", форма = форма) Рез = tf.tensordot (dense3d, dense2d, оси = 1) res.set_shape (форма) мы можем производить тот же результат, используя вместо 2D-разреженный тензор? Что бы код, если бы мы имели sparse2d = tf.SparseTensor (индексы = [[0, 0], [1, 2]], значения = [1,0, 2,0], dense_shape = [3,3]) вместо dense2d? FYI, этот пост связан с этой GitHub вопроса. Я понимаю, что tf.sparse_tensor_dense_matmul не поддерживает ранг> 2. Есть обходной путь?
alpaca
1

голосов
0

ответ
1.1k

Просмотры

installed keras and tensorflow but getting error

я получаю эту ImportError даже я установил все необходимые модули, такие как keras, tensorflow и т.д., я не в состоянии разрешить его даже работая в Конде среды. ImportError: Нет модуль с именем python.training #Imports импорта ОС от случайного импорта перетасовать #Keras импорта из keras.preprocessing.image импорта ImageDataGenerator, array_to_img, img_to_array, load_img из keras.models не импортировать Sequential из keras.layers импорта Convolution2D, MaxPooling2D из keras. слои импорт Activation, Dropout, расправьте, Плотное #Imports импорта ОС от случайного импорта перетасовки #Keras импорта из keras.preprocessing.image импорта ImageDataGenerator, array_to_img, img_to_array, load_img из keras.models импортируют Sequential из keras.layers импорт Convolution2D, MaxPooling2D из keras .layers импорта Activation, Выпадение, Свести, Плотные Использование TensorFlow бэкенд. -------------------------------------------------- ------------------------- ImportError Traceback (самый последний вызов последнего) в () 4 5 #Keras импорта ----> 6 из keras. preprocessing.image ImageDataGenerator импорт, array_to_img, img_to_array, load_img 7 из keras.models импорта Последовательная 8 из keras.layers импортировать Convolution2D, MaxPooling2D построить / bdist.macosx-10,13-x86_64 / яйцо / keras / __ init__.py в () построить / bdist .macosx-10,13-x86_64 / яйцо / keras / Utils / __ init__.py в () построить / bdist.macosx-10,13-x86_64 / яйцо / keras / Utils / conv_utils.py в () построить / bdist.macosx-10,13-x86_64 /egg/keras/backend/__init__.py в () строите / bdist.macosx-10,13-x86_64 / яйцо / keras / бэкэнд / tensorflow_backend.py в () ImportError: нет модуль с именем python.training
Amit kumar
1

голосов
1

ответ
133

Просмотры

The fit function from tf.contrib.learn.LinearRegressor asks to switch to tf.train.get_global_step

Я пытаюсь получить LinearRegressor работать, и я получаю сообщение об ошибке, для которого, кажется, не будет много документации о. Когда я делаю: регрессор = tf.contrib.learn.LinearRegressor (feature_columns = linear_features) regressor.fit (input_fn = training_input_fn, ступени = 10000) regressor.evaluate (input_fn = eval_input_fn) Я получаю сообщение об ошибке: Инструкции по обновлению: Переключитесь на tf.train.get_global_step Я не уверен, как поступить. Я читал из документации: некоторые аргументы DEPRECATED. Они будут удалены после 2016-12-01. Инструкции по обновлению: оценщик отщепляются от Scikit Learn интерфейс, переместив в отдельный класс SKCompat. Аргументы х, у и batch_size доступны только в классе SKCompat, оценщик будет принимать только input_fn. Пример преобразования: EST = оценщик (...) -> EST = SKCompat (оценщик (...)) Но я не уверен, что я должен изменить, или, как переключиться на глобальный шаг. Я попытался с помощью tf.estimator.LinearRegressor главным образом потому, что я из идей, и сделал что-то вроде этого: оценщик = tf.estimator.LinearRegressor (feature_columns = linear_features) estimator.train (input_fn = training_input_fn) estimator.evaluate (input_fn = eval_input_fn ) estimator.predict (input_fn = eval_input_fn) Но не получил никакого вывода вообще.
Trufa
1

голосов
0

ответ
145

Просмотры

Визуализируйте Tensorflow Object_detection API «S не работают

когда я использую API из Object_detection, я следовал инструкциям, все отлично .Однако, когда я начинаю проверить свою картину, я встретился с проблемой, мне кажется, что функция с именем «visualize_boxes_and_labels_on_image_array» (в 57 строке) Ждет» т работы. Вот мои исходные коды импорт CV2 импорта NumPy как нп импорт tensorflow в тс из object_detection.utils импортируют label_map_util из object_detection.utils импорт visualization_utils в vis_util класса TOD (объект): __ __init четкости (сам): self.PATH_TO_CKPT = «/ дом / xiyou /Desktop/ssd_training/result/frozen_inference_graph.pb»self.PATH_TO_LABELS = '/home/xiyou/Desktop/ssd_training/detection_for_smoke.pbtxt' self.NUM_CLASSES = 1 self.detection_graph = self._load_model () = self.category_index самостоятельно. get_tensor_by_name ( 'detection_classes: 0') num_detections = self.detection_graph.get_tensor_by_name ( 'num_detections: 0') # Фактическое обнаружение. (Коробки, оценки, классы, num_detections) = sess.run ([коробки, счеты, классы, num_detections], feed_dict = {image_tensor: image_np_expanded}) для печати (ящики, оценки, классы, num_detections) #print (np.squeeze (боксы )) # Визуализация результатов обнаружения. ####### Здесь проблема # image1 = vis_util.visualize_boxes_and_labels_on_image_array (изображение, ####### Вот проблема np.squeeze (коробки), np.squeeze (классы) .astype (np.int32), np.squeeze (баллы), self.category_index, use_normalized_coordinates = True, line_thickness = 50,) #print (np.squeeze (коробки), np.squeeze (классы) ) cv2.namedWindow ( "обнаружение") cv2.imshow ( "обнаружение", image1) cv2.waitKey (0), если __name__ == '__main__': изображение = cv2.imread ( '/ дом / xiyou / Фотографии / timg1.jpg «) detecotr = TOD () detecotr.detect (изображение), когда я запускаю этот код, изображение было шоу, но ничего не изменилось, не обнаруживаются область в ПОС и не Иная информация. вход ПОС является такой же, как из изображения. Но когда я была отладки, я нашел Varibles, такие как soucres, классы, коробки действительно имеет значение. Кто-нибудь может мне помочь? Спасибо!!! И моя Tensorflow версия 1.4.0, CUDA 8.0 в Ubuntu 16.04
喻润洋
1

голосов
1

ответ
1.8k

Просмотры

tensorflow случайного леса регрессии

Я хотел бы реализовать простые случайные лесные регрессии для прогнозирования значения. Входы некоторые образцы с несколькими особенностями, а метка представляет собой значение. Тем не менее, я не могу найти простой пример о случайной проблеме лесной регрессии. Таким образом, я видел документ tensorflow и я обнаружил, что: оценщик, который может обучить и оценить случайный лес. Пример: Python PARAMS = tf.contrib.tensor_forest.python.tensor_forest.ForestHParams (num_classes = 2, num_features = 40, num_trees = 10, MAX_NODES = 1000) # оценщик, используя по умолчанию график строитель. оценка = TensorForestEstimator (PARAMS, model_dir = model_dir) # Или оценки с использованием в качестве TrainingLossForest графа строителя. оценка = TensorForestEstimator (PARAMS, graph_builder_class = tensor_forest.TrainingLossForest, model_dir = model_dir) # Входные строители Защиты input_fn_train: # возвращает е, у ... Защита input_fn_eval: # возвращает й, у ... estimator.fit (input_fn = input_fn_train) estimator.evaluate (input_fn = input_fn_eval) # Предсказать возвращает итератор из dicts. Результаты = список (estimator.predict (х = х)) = prob0 результаты [0] [eval_metrics.INFERENCE_PROB_NAME] prediction0 = результаты [0] [eval_metrics.INFERENCE_PRED_NAME] Однако, когда я следую примеру, я получил ошибку на линии , prob0 = [0] [eval_metrics.INFERENCE_PROB_NAME], ошибка показывает, что: Пример преобразования: EST = оценщик (...) -> EST = SKCompat (оценщик (...)) Traceback (самый последний вызов последнего): Файл "RF_2.py", строка 312, в главной () Файл "RF_2.py", строка 298, в главном train_eval (x_train, y_train, x_validation, y_validation, x_test, y_test, num_tree) Файл "RF_2.py", строка 221, в train_eval prob0 = Результаты [0] [eval_metrics.INFERENCE_PROB_NAME] KeyError: 'вероятность' Я думаю, что ошибка происходит на INFERENCE_PROB_NAME, и я видел этот документ. Тем не менее, я до сих пор не знаю, что это слово заменить INFERENCE_PROB_NAME. Я попытался get_metric ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError:. Я также попытался get_prediction_key ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError: «классы». Если вы знаете возможный ответ, пожалуйста, скажите мне. Заранее спасибо. Я до сих пор не знаю, что это слово заменить INFERENCE_PROB_NAME. Я попытался get_metric ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError:. Я также попытался get_prediction_key ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError: «классы». Если вы знаете возможный ответ, пожалуйста, скажите мне. Заранее спасибо. Я до сих пор не знаю, что это слово заменить INFERENCE_PROB_NAME. Я попытался get_metric ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError:. Я также попытался get_prediction_key ( «точность»), чтобы заменить INFERENCE_PROB_NAME, он возвращает ошибку: исключение KeyError: «классы». Если вы знаете возможный ответ, пожалуйста, скажите мне. Заранее спасибо.
rita33cool1
1

голосов
0

ответ
409

Просмотры

Tensorflow Резюме: Вы должны кормить значение для тензора заполнителя с DTYPE поплавка

Я испытываю странное дело, и я понятия не имею, как решить эту проблему. В основном я готовлю многослойную Н.Н.. Однако, когда я пытаюсь добавить резюме, я получаю следующее сообщение об ошибке: Вызванный ор «Placeholder_2», определенный на: Файл «multilayer.py», строка 235, в train_model (данные, real_output, real_check, args.learning_rate, args.op , args.batch) Файл "multilayer.py", строка 120, в train_model keep_prob = tf.placeholder (tf.float32) Файл «C: \ Users \ dangz \ Anaconda3 \ Lib \ сайт-пакеты \ tensorflow \ питон \ OPS \ array_ops.py "строка 1599, в заполнителем возврата gen_array_ops._placeholder (DTYPE = DTYPE, форма = форма, имя = имя) Файл" C: \ Users \ dangz \ Anaconda3 \ Lib \ сайт-пакеты \ tensorflow \ питон \ OPS \ gen_array_ops.py», линии 3090, в _placeholder "маркер", DTYPE = DTYPE, форма = форма, batch_ys, keep_prob: 0,5}) Однако при удалении сводки из sess.run затем я могу обучить модель. От ошибки он говорит, что я должен кормить значение keep_prob, но я делаю так, что та часть, я не понимаю. Удаление сводки работ, далее идут строки кода, которые я изменил: curr_loss, cur_accuracy, _ = sess.run ([cross_entropy, точность, train_step], feed_dict = {х: batch_xs, Y_: batch_ys, keep_prob: 0,5}) определение Graph (из-за StackOverflow формат, все после для до тех пор, пока crossentropy внутри для): #set до вычисления. Определение переменных. х = тс. 1]) # Мы скручивать x_image с тензором веса, добавить смещение, применить функцию РЕЛУ, и, наконец, максимальный бассейн. #The метод max_pool_2x2 позволит уменьшить размер изображения до 14х14. h_conv1 = tf.nn.relu (conv2d (x_image, W_conv1) + b_conv1) h_pool1 = max_pool_2x2 (h_conv1) сверточного # Второй слой: 64 функции для каждого 5x5 патч. W_conv2 = weight_variable ([5, 5, 32, 64]) b_conv2 = bias_variable ([64]) h_conv2 = tf.nn.relu (conv2d (h_pool1, W_conv2) + b_conv2) h_pool2 = max_pool_2x2 (h_conv2) #Densely подключен слой: обрабатывает 64 7x7 изображения с 1024 нейронами #Reshape тензора от пулингового слоя в партию векторов, #multiply матрицей веса, добавьте смещение, и применить РЕЛ. W_fc1 = weight_variable ([7 * 7 * 64, 1024]) b_fc1 = bias_variable ([1024]) h_pool2_flat = tf.reshape (h_pool2, [-1, 7 * 7 * 64]) h_fc1 = tf.nn.relu (тс .matmul (h_pool2_flat,
Daniel Zapata
1

голосов
0

ответ
98

Просмотры

Бенчмаркинг GPU опа в Tensorflow графах

Https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/benchmark бенчмаркинг инструмент профили только опы для CPU. Есть аналогичный инструмент для профилирования GPU опа или какие изменения могут быть сделаны в инструменте бенчмаркинг выше, чтобы получить информацию об использовании GPU? Примечание: У меня уже есть модель и мне просто нужно, чтобы получить OPS профили для GraphDef.
RoyS
1

голосов
1

ответ
126

Просмотры

tensorflow: тензор для ndarray преобразования не работает - python3.x

Я работаю на Tensorflow CNN модели и изменен в соответствии с моим сценарием. Ранее же код работал хорошо на MNIST наборе данных, но теперь, после кормления своих собственного набора данных заполнителя y_true для этикеток является причиной проблемы. Фрагмент кода: х = tf.placeholder ( "поплавок", форма = [88, 128]) y_true = tf.placeholder ( "поплавок", форма = [Нет, 3]) y_true в сессии получает мне ошибку. Фрагмент кода: sess.run (поезда, feed_dict = {х: batch_x, y_true: batch_y, hold_prob: 0,5}) Ошибка: Ошибка типа: Значение питания не может быть объектом tf.Tensor. Допустимые значения подачи включают Python скаляры, строки, списки, Numpy ndarrays или TensorHandles. Я отливаю его Numpy массива через у = np.array (y_true) и отлажен заявление в соответствии с у, но опять ошибки: Ошибка типа: unhashable типа: «» numpy.ndarray Пробовал y_true. Eval (сессия = my_sess), как предложено здесь, на StackOverflow, но снова ошибка: InvalidArgumentError: Вы должны кормить значение для шаблонного тензора «Placeholder_4» с DTYPE поплавок и формой Любой идеей [3,?]? Что случилось здесь и как бросить / преобразовать его в подходящий формат. Дополнительная информация: batch_x = партия 50 изображений (всего 200K), 88x128 одного канала batch_y = этикетки (строка) той же партии, что и выше
MIftikharK
1

голосов
1

ответ
226

Просмотры

Ran out of GPU memory when allocating 0 bytes

% Save_path) Что я сделал просто создание моей собственной партии mnist.datasets с массивом пользовательских меток. Но когда я запускаю это, после нескольких итераций, я получаю следующий вывод: Ран из памяти GPU при выделении 0 байт для [[Node: SoftmaxCrossEntropyWithLogits_6 = SoftmaxCrossEntropyWithLogits [T = DT_FLOAT, _device = "/ работа: локальный / реплика: 0 / задача: 0 / устройство: GPU: 0" ] (Reshape_20, Reshape_21)]] Я даже добавил эти строки: конфиг = tf.ConfigProto () config.gpu_options.allow_growth = True и NVIDIA-сми говорят мне, что Arround 4Gb должна быть свободно. Кто-нибудь знает эту проблему, или, может быть, даже знает, как это исправить? SoftmaxCrossEntropyWithLogits_6 = SoftmaxCrossEntropyWithLogits [Т = DT_FLOAT, _device = "/ работа: локальный / реплика: 0 / задача: 0 / устройство: ГПУ: 0"] (Reshape_20, Reshape_21)]] Я даже добавил эти строки: конфигурационный = tf.ConfigProto ( ) config.gpu_options.allow_growth = True и NVIDIA-сми говорит мне, что Arround 4Gb должен быть свободным. Кто-нибудь знает эту проблему, или, может быть, даже знает, как это исправить? SoftmaxCrossEntropyWithLogits_6 = SoftmaxCrossEntropyWithLogits [Т = DT_FLOAT, _device = "/ работа: локальный / реплика: 0 / задача: 0 / устройство: ГПУ: 0"] (Reshape_20, Reshape_21)]] Я даже добавил эти строки: конфигурационный = tf.ConfigProto ( ) config.gpu_options.allow_growth = True и NVIDIA-сми говорит мне, что Arround 4Gb должен быть свободным. Кто-нибудь знает эту проблему, или, может быть, даже знает, как это исправить?
Linus
1

голосов
0

ответ
23

Просмотры

Как получить имя из списка, например, как аналогичная входной строка?

У меня есть список следующим образом [,,,,,,,,,,,,,,] Я хочу, чтобы получить все имя, хранить BatchNorm в списке и магазина в новом списке без дублирования. Имя будет сократить до BatchNorm. Например, вход 'resnet_v1_101 / block1 / unit_1 / bottleneck_v1 / CONV1 / BatchNorm / moving_mean Выход 'resnet_v1_101 / block1 / unit_1 / bottleneck_v1 / CONV1 / BatchNorm' Мой ожидается в новом списке [' resnet_v1_101 / CONV1 / BatchNorm '' resnet_v1_101 / block1 / unit_1 / bottleneck_v1 / ярлык / BatchNorm», 'resnet_v1_101 / block1 / unit_1 / bottleneck_v1 / CONV1 / BatchNorm']
Jame
1

голосов
1

ответ
64

Просмотры

Эффективная альтернатива np.piecewise в Tensorflow

Я в настоящее время в процессе портирования моего NumPy кода на Tensorflow, для эффективного применения к нейронным сетям. В то время как Tensorflow охватывает некоторые из основных функций NumPy, она, очевидно, не обеспечивает полный охват. Сейчас я немного застрял, пытаясь перевести красивую функцию numpy.piecewise к Tensorflow. Цель состоит в том, чтобы проверить, является ли каждый элемент входной матрицы (тензора?) Превысит заданные границы, если определенный шаг будет добавлен, а если да, то для изменения прилагаемого элемента в маске матрицы одного и того же размера. Это, как функция выглядит в NumPy: Защита bounds_check (входы, маска, шаг, граница): conds = [np.absolute (вход + шаг)> границы, np.absolute (входы + шаг)
anna-earwen
1

голосов
0

ответ
705

Просмотры

ValueError: не может изменить массив размера 0 в форму (1,256,256,6)

Я получил сообщение об ошибке, ValueError: не может изменить массив размера 0 в форме (1,256,256,6). Я написал коды в main.py parser.add_argument ( '- checkpoint_dir', Dest = 'checkpoint_dir', по умолчанию = '/ контрольно-пропускной пункт.', Помощь = 'модели сохраняются здесь') parser.add_argument ( '- sample_dir', Dest = 'sample_dir', по умолчанию = '/ образец.', 'помочь образца сохраняются здесь' =) parser.add_argument ( '- test_dir', Dest = 'test_dir', по умолчанию = '/ тест', помощь =» Исследуемый образец сохраняются здесь ') parser.add_argument (' - L1_lambda 'Dest = 'L1_lambda', тип = поплавок, по умолчанию = 10.0, помощь = 'вес на срок L1 в цель') parser.add_argument (' - use_resnet 'Dest = 'use_resnet', тип = BOOL, по умолчанию = True, помощь = 'поколение сети с использованием reidule блока') parser.add_argument (' в sample_model sample_images = массив (sample_images) .reshape (1, 256, 256, 6) ValueError: не может изменить массив размера 0 в форму (1,256,256,6) До этого я получил ошибку изменить форму, так что я добавил ниже кода sample_images = массив ( sample_images) .reshape (1, 256, 256, 6) Но теперь мне сказали, размер 0 вызывает error.I действительно не могу понять, почему эта ошибка происходит. Я не думаю, что 0 изображений размера находятся в папке. Как это исправить? Что плохое в моем коде? Является ли любое изображение имеет размер 0 в папке? Я не думаю, что 0 изображений размера находятся в папке. Как это исправить? Что плохое в моем коде? Является ли любое изображение имеет размер 0 в папке? Я не думаю, что 0 изображений размера находятся в папке. Как это исправить? Что плохое в моем коде? Является ли любое изображение имеет размер 0 в папке?
user9170657

Просмотр дополнительных вопросов