Вопросы с тегами [machine-learning]

1

голосов
2

ответ
12

Просмотры

Место модель логистической регрессии для данных MNIST занимает очень много

Я пытаюсь применить логистическую регрессию модель из sklearn в MNIST набор данных и я разделить тренировки - данные испытаний в 70-30 раскола. Однако, когда я просто говорю model.fit (train_x, train_y) она занимает очень много времени. Я не добавил никаких параметров при инициировании логистической регрессии. Код: импорт Сиборн в с.н.с. импорт Matplotlib импорта matplotlib.pyplot в PLT из sklearn.datasets импорта fetch_mldata из sklearn.linear_model импорта логистической регрессии из sklearn.model_selection импорт train_test_split импорта временных файлов test_data_home = tempfile.mkdtemp () mnist = fetch_mldata ( 'MNIST оригинала', data_home = test_data_home) x_train, x_test, y_train, y_test = train_test_split (mnist.data, mnist.target, test_size = 0,30, random_state = 0) = Л.Р. логистическая регрессия (штраф = 'l2') lr.fit (x_train, y_train)
TheNoob
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
0

голосов
1

ответ
14

Просмотры

не может разделить большой файл .txt в поезд, тестирования и проверки деталей для глубокого текста корректором

У меня есть один большой файл .txt, и я хочу, чтобы разбить его на поезд, испытание и набор проверки. ниже строки кода, где я хочу, чтобы использовать эти мушки. Я не получаю интуиции о том, как это сделать. питон correct_text.py --train_path /movie_dialog_train.txt \ --val_path /movie_dialog_val.txt \ --config DefaultMovieDialogConfig \ --data_reader_type MovieDialogReader \ --model_path / movie_dialog_model
SRajput
0

голосов
0

ответ
3

Просмотры

How to fix 'Object arrays cannot be loaded when allow_pickle=False' in the sketch_rnn algorithm

Я управлял sketch_rnn.ipynb на моем jupyter ноутбуке, при загрузке среды для загрузки обученного набора данных, то возвращается ошибка «массивы объектов не может быть загружена, когда allow_pickle = False» Этот код уже используются разработчиками Google в разработке sketch_rnn алгоритм, который был работать даже в colab Google. В прошлом я пытался это сам по colab Google он работал, но, кажется, не будет работать на моем собственном jupyter ноутбука от magenta.models.sketch_rnn.sketch_rnn_train импорта * из magenta.models.sketch_rnn.model импорта * из magenta.models. sketch_rnn.utils импортировать * из magenta.models.sketch_rnn.rnn импорта * model_params.batch_size = 1 eval_model_params = sketch_rnn_model.copy_hparams (model_params) eval_model_params.use_input_dropout = 0 eval_model_params.use_recurrent_dropout = 0 eval_model_params.
Duncan Jerry
1

голосов
2

ответ
105

Просмотры

Предсказание пропущенных слов в предложении - Natural Language Processing Model [закрыт]

У меня есть предложение ниже: Я хочу ____ машины, потому что это дешево. Я хочу, чтобы предсказать, пропущенное слово, используя модель NLP. Что NLP модель я должен использовать? Благодарю.
Eliyah
3

голосов
0

ответ
39

Просмотры

почему изменение данных не изменяет сюжетную линию?

Я новичок в области машинного обучения и я строю простую линейную модель regession. Переменные для модели заключаются в следующем: X_train = [3, 5, 3, 4, 8, 7, 1, 10, 3, 2, 6, 6, 4, 9, 2, 1, 7, 5, 4, 8] X_test = [2, 10, 4, 4, 10, 9, 10, 4, 5, 8] Y_train = [56642, 66029, 64445, 61111, 113812, +91738, 46205, сто двадцать одна тысяча восемьсот семьдесят две, 60150, 39891, +81363, 93940, 57189, 54445, 105582, 43525, 39343, 98273, 67938, 56957] Y_test = [37731, 122391, 57081, 63218, 116969, 109431, 112635, 55794, 83088, 101302] Вот мой код: импорт NumPy как импорт н.п. matplotlib.pyplot, как PLT импортных панд, как PD # импорт набора данных набора данных = pd.read_csv ( 'data.csv') Х = dataset.iloc [:,: -1] .values ​​у = dataset.iloc [:, 1]. значения # Нарезка набор данных в набор тренинга и тестового набора из sklearn.model_selection импорта train_test_split X_train, X_test, y_train,
Samarth Saxena
1

голосов
1

ответ
378

Просмотры

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

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

голосов
1

ответ
65

Просмотры

Q-Learning: Inaccurate predictions

Я недавно начал получать в Q-Learning. В настоящее время я пишу агент, который должен играть простую настольную игру (Отелло). Я играю против случайного противника. Однако он не работает должным образом. Либо мой агент остается около 50% винрейта или становится еще хуже, чем дольше я тренируюсь. Выход моей нейронной сети является 8x8 матрица с Q-значений для каждого хода. Моя награда заключается в следующем: 1 за победу -1 за потерю недопустимый рассчитывает двигаться как потеря поэтому награда -1 в противном случае я экспериментировал с прямой наградой -0.01 или 0. Я сделал некоторые замечания, которые я не могу объясняет: Когда я считаю, прогноз на первый шаг (мой агент всегда начинается) предсказания для недействительных ходов получить действительно близко к -1 очень быстро. Предсказания для действительных движений, однако, кажется, подняться дольше я играю. Они даже пошли выше 1 (они были выше 3 в какой-то момент), что не должно быть возможным, так как я обновляю свои Q-значения в соответствии с Беллмана-уравнением (с альфа = 1), где гамма является показателем менее 1 (я использую 0,99 большую часть времени). Если игра длится около 30 получается, я бы ожидать, макс / мин значения + -0.99 ^ 30 = + - 0,73. Кроме того, прогнозы на исходное состояние, кажется, самый высокий. Еще одно наблюдение я сделал, это то, что сеть кажется слишком оптимистичным с его предсказаниями. Если я считаю, что прогноз на ход, после чего игра будет потеряна, предсказания для недействительных витков снова близко к -1. Действует поворот (ы), однако, часто имеют предсказания значительно выше 0 (например, 0,1 или даже 0,5). Я несколько потерял, так как я не могу объяснить, что может привести мои проблемы, так как я уже дважды проверил свои награды / целевые матрицы.
Exzone
1

голосов
0

ответ
101

Просмотры

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

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

голосов
0

ответ
103

Просмотры

Допускаются тип данных в ДВР, чтобы сохранить функции в логистической регрессии

Я пытаюсь построить логистическую регрессию в питона с набором данных, который содержит непрерывные функции и некоторые бинарные функции. Для того, чтобы выбрать те функции, которые я буду включать в модели я использую RFE. Поэтому в основном у меня есть этот код у = HRData [ 'левый'] = collist HRData.columns.tolist () collist.remove ( 'левый') X = HRData [collist] модель = логистическая регрессия () ДВР = RFE (модель 10) подходят = rfe.fit (HRData [X], HRData [у]), где у содержит 1 и 0, а Х имеет либо Int или плавать данных. Когда я пытаюсь подобрать модель с РСЕ я получаю это: /anaconda3/lib/python3.6/site-packages/pandas/core/frame.py в _getitem_frame (я, ключ) 2033 Защиту _getitem_frame (я, ключ): 2034, если key.values.size и не is_bool_dtype (key.values): -> 2035 рейз ValueError (» Должно пройти DataFrame только с булевыми значениями ') 2036 Возвращение self.where (ключ) 2037 ValueError: Выдерживает DataFrame с булевыми значениями только Таким образом, я не уверен, что если эта функция допускает только кадры данных с булевыми значениями, так как я видел примеры с непрерывным переменные. Заранее спасибо за помощь!
Maria F Cadena
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

ответ
116

Просмотры

Решение FizzBuzz с Keras

Я пытаюсь решить FizzBuzz с помощью Keras и она работает достаточно хорошо для чисел от 1 до 10000 (90-100% винрейт и близка к 0 потерь). Однако, если я попытаюсь еще более высокие цифры, то есть число от 1 до 100000 не кажется, хорошо работать (~ 50% винрейт, потеря ~ 0,3). На самом деле, он выполняет довольно плохо, и я понятия не имею, что я могу сделать, чтобы решить эту задачу. До сих пор я использую очень простую нейронную сеть архитектуру с 3 скрытых слоями: модель = Sequential () model.add (Плотный (2000, input_dim = state_size, активация = "Relu")) model.add (Плотная (1000, активация = "Relu")) model.add (Плотные (500, активация = "Relu")) model.add (Плотные (num_actions, активация = "SoftMax")) model.compile (убыток = 'categorical_crossentropy', оптимизатор = 'адам' , метрики = [ "точность" ]) Я обнаружил, что чем больше нейронов, я, тем лучше он выполняет, по меньшей мере, для чисел ниже 10.000. Я готовлю свою нейронную сеть в пошагово, а это означает, что я не вычисляя входы и цели заранее, но вместо того, чтобы обучать шаг за шагом сети. Опять же, это работает очень хорошо, и это не должно сделать разницу правильно? Вот главный цикл: для эпохи в диапазоне (np_epochs): действие = СЛУЧАЙНОЕ_ЧИСЛО () x_raw = to_binary (действие) х = np.expand_dims (x_raw, 0) = model.predict предсказания (х) у, победа, _, _ = check_prediction (действие, прогнозирование) memory.append ((x_raw, у)) curr_batch_size = мин (batch_size, длина (память)) = random.sample партия (память, curr_batch_size) входов = [] цели = [] для г, т в партия: inputs.append (я) targets.append (т), если победа: побед + = 1 потеря, точность = model.train_on_batch (np.array (входы), np.array (цели)) Как вы можете видеть, я готовлю свою сеть не на десятичных чисел, но преобразовать их в бинарный первый перед подачей его в сеть. Еще одна вещи, чтобы отметить здесь, что я использую память, чтобы сделать его более как подконтрольные проблемы. Я думал, что это может работать лучше, если поезд на числах, что нейронная сеть уже обучена. Это, кажется, не имеет никакого значения вообще. Что я могу сделать, чтобы решить эту конкретную проблему с нейронной сетью? Я имею в виду, это так трудно для функции аппроксиматора, чтобы выяснить простую математику за FizzBuzz? Я делаю что-то неправильно? Вы можете предложить другую архитектуру? Смотрите мой код на MachineLabs. Вы можете просто раскошелиться мою лабораторию и возиться с ним, если вы хотите. Для просмотра в код, просто нажмите на кнопку '
LordTribual
1

голосов
1

ответ
674

Просмотры

Группировка данных по sklearn.model_selection.GroupShuffleSplit

У меня есть набор данных в CSV с заголовком как PRODUCT_ID CATEGORY_NAME product_type DISPLAY_COLOR_NAME image_id с таким же продуктом, имеющими нескольких строк с разной image_id. Я сделал Id изображения в качестве индекса седловины при чтении CSV в кадр панды данных. Я хочу создать тест и поезд набор данных путем группировки данных на PRODUCT_TYPE или любой другой столбец. Также убедитесь, что те же данные не повторяются в обоих тест и поезда набора данных (так как у меня есть несколько строк для продукта с различными изображениями) Как я могу добиться этого с помощью sklearn.model_selection.GroupShuffleSplit
Aravind Chamakura
1

голосов
0

ответ
146

Просмотры

Phpml \ Exception \ MatrixException Сообщение: Матрица вырождена

Я делаю программу, которая будет предсказывать коллекцию на следующий год из базы данных с помощью PHP-мл. и я получаю эту ошибку. Phpml \ Exception \ MatrixException Сообщение: Матрица вырождена Im С помощью этих функций используют Phpml \ регрессионных \ методом наименьших квадратов; использовать \ Phpml \ Math \ Matrix; использовать \ Phpml \ Math \ Set; новичок здесь. Regression_controller индекс общественная функция () {$ this-> load-> модель ( "regression_model"); $ Массива = $ этом-> regression_model-> display_data (); $ цели = $ этом-> regression_model-> display_data2 (); $ Матрица = новая матрица ($ массив); $ = Установить новый набор ($ цели); $ Arraytrix = $ матрица-> ToArray (); $ Arrayset = $ комплект-> ToArray (); $ Цв [] = array_column ($ arraytrix, 'год'); $ Col2 [] = array_column ($ arrayset, 'всего'); var_dump ($ цв); var_dump ($ col2); $ Регрессия = новые методом наименьших квадратов (); $ Regression-> поезд ($ цв, $ col2); $ Предсказывал = $ regression-> предсказать ([2018]); var_dump ($ предсказаны); $ This-> load-> Вид ( 'регресс'); } Regression_model функция display_data () {$ Query1 = $ this-> db-> запрос ( "ВЫБРАТЬ год от total_year"); вернуть $ query1-> result_array (); } Функция display_data2 () {$ Query1 = $ this-> db-> запрос ( "SELECT всего от total_year"); вернуть $ query1-> result_array (); } вернуть $ query1-> result_array (); } Функция display_data2 () {$ Query1 = $ this-> db-> запрос ( "SELECT всего от total_year"); вернуть $ query1-> result_array (); } вернуть $ query1-> result_array (); } Функция display_data2 () {$ Query1 = $ this-> db-> запрос ( "SELECT всего от total_year"); вернуть $ query1-> result_array (); }
stephoroi
1

голосов
0

ответ
154

Просмотры

Роль коэффициента в полиномиальной NB

Мой MultinomialNB классификатор был инстанцирован и обучение по векторизованной подделке / реальные новостных статьям, и теперь я пытаюсь понять смысл за коэффициентами. nb_classifier = MultinomialNB () # Извлечение метки класса ( «Поддельные» или «Реал») class_labels = nb_classifier.classes_ # Извлечение features_names из векторизатора я использовал feature_names = count_vectorizer.get_feature_names () # Zip в feature_names вместе с массивом коэффициентов и сортировать по весам feat_with_weights = упорядоченный (почтовый (nb_classifier.coef_ [0], feature_names)) печать (class_labels [0], feat_with_weights [-20:]) #Or, class_labels [1] = Результаты 'Реал' в: FAKE [ (-6,2632792078858461 'Сандерс'), (-6,2426599206831099, 'дом'), (-6,1832365002123097, 'сенатом'), (-6,1641883052416144, 'время'), (-6. 1091285280585872 «ирак»), (-5,9297875994027711, Республиканцы), ...] Я понимаю, что чем выше коэффициент (-5,9) означает, что маркер имеет более высокую predictiveness чем -6.2. Но я не уверен, где отношения. Означает ли это, что маркер Республиканцы высоко связаны с поддельными новостями или реальными новостями.
Adam Schroeder
1

голосов
0

ответ
131

Просмотры

a TypeError in fit function when using keras with theano backend

моя Theano версия 1.0.1 + неизвестна. мой keras версия 2.1.3 я уверен, реализации сложены LSTM автоассоциатора в keras и это мой код: = x_train.shape временных шаги [1] = 1 input_dim входы = Вход (batch_shape = (1, временные шаги, input_dim)) кодируются = LSTM (7, return_sequences = True) (входы), кодируемый = LSTM (5, return_sequences = True) (кодируется), кодируемый = LSTM (3) (кодируется) декодируется = RepeatVector (временные шаги) (кодированные) декодируются = LSTM (5, return_sequences = True ) (декодированы) декодированные = LSTM (7, return_sequences = True) (декодированы) декодируется = LSTM (input_dim, return_sequences = True) (декодированы) sequence_autoencoder = модели (входы, декодируется) кодер = Модель (входы, закодированный) sequence_autoencoder.compile ( потери = 'mean_squared_error', оптимизатор = 'Адам') sequence_autoencoder.fit (x_train, x_train, эпохи = 100, batch_size = 1, перетасовка = True,) Это дает мне следующее сообщение об ошибке: Ошибка типа: Радиопередача структура выходного сканирования (TensorType (float32, 3D)) не согласуется с тем, представленной в output_info (TensorType (float32, Col)). Выход на оси 1, значение False, но это правда на оси 2 в output_info. Это может произойти, если один из размерности закреплен на 1 на входе, в то время как он по-прежнему переменная на выходе, или заместитель verca. Вы должны привести их в соответствие, например, с помощью theano.tensor. {Patternbroadcast, unbroadcast, addbroadcast}.
Mostafa Kotb
1

голосов
1

ответ
328

Просмотры

Как я могу развернуть модель ML от ECS для Sagemaker?

У меня есть модель, которая была обученной на месте, а затем перетекает в AWS ECS. Я хотел бы, чтобы развернуть его на Sagemaker. В настоящее время я: от sagemaker.estimator импорта оценщик модели = оценщик (образ, роль, 1, 'ml.c4.2xlarge', OUTPUT_PATH = "s3: // {} / выход" .format (sess.default_bucket ()) , sagemaker_session = Sess) Но когда я звоню из sagemaker.predictor импорта csv_serializer предсказателя = agent.deploy (1, '', ml.t2.medium сериализатора = csv_serializer) я получаю: ------------ -------------------------------------------------- ------------- RuntimeError Traceback (самый последний вызов последнего) в () 1 из sagemaker.predictor импорта csv_serializer ----> 2 предсказатель = model.deploy (1, «ml.t2. Средняя', 179 рейз RuntimeError ( 'оценщик не был подогнан еще.) 180 endpoint_name = endpoint_name или self.latest_training_job.name 181 self.deploy_instance_type = instance_type RuntimeError: оценщик не был подогнан еще. Но она была подогнана ... только не на Sagemaker. Как я могу решить эту проблему? 179 рейз RuntimeError ( 'оценщик не был подогнан еще.) 180 endpoint_name = endpoint_name или self.latest_training_job.name 181 self.deploy_instance_type = instance_type RuntimeError: оценщик не был подогнан еще. Но она была подогнана ... только не на Sagemaker. Как я могу решить эту проблему?
Martin Thoma
1

голосов
1

ответ
557

Просмотры

Как набор данных изображения дополнительной выборки с помощью Python?

Я работаю на мультиклассируют задаче классификации с несбалансированным набором данных изображений (различного класса). Я попытался imblearn библиотеки, но она не работает на наборе данных изображения. У меня есть набор данных изображений, принадлежащих к классу 3, а именно A, B, C. А имеет 1000 данных, B имеет 300 и С имеет 100. Я хочу класса B дополнительной выборки и С, так что я могу избежать дисбаланса данных. Пожалуйста, дайте мне знать, как набор данных дополнительной выборки изображения с помощью питона.
ReInvent_IO
1

голосов
1

ответ
116

Просмотры

Улучшение Flappy Bird Genetic Algorithm населения

Я пытаюсь создать генетический алгоритм, который учится играть Flappy птицы. У меня есть игра работает, это мой класс Bird: общественный класс Bird расширяет плеер {общественного NNetwork сеть; общественный Птица (с плавающей точкой х, у поплавка, поплавок velX, плавать Vely, ширину, высоту поплавка с плавающей точкой) {супер (х, у, velX, Vely, ширина, высота); NTopology тий = новый NTopology (3,5,1); сеть = новый NNetwork (тая, 0.1f, 0.1f, правда); } Общественный недействительный сброс () {setAlive (истина); Setx (0f); SetY (1000F); setVelY (0f); } / ** * Питается параметры в нейронную сеть * разница @param dyTop высоты до верхнего края * разница высот @param dyBot до нижнего края * @param йх расстояние до препятствия * @return верно, если птица думает, что это будет хорошо прыгать * / публичный недействительным прыжок (плавать dyTop, плавать dyBot, плавать ах) {network.feed (dyTop, dyBot, дх); если (network.getOutputs () [0]> 0f) super.flap (); } Общественного недействительными обновления (плавать dyTop, плавать dyBot, плавать ах) {super.update (); прыжок (dyTop, dyBot, дх); } Общественного Птица мутируют () {Птица RET = это; ret.network.mutate (); ret.setAlive (истина); ret.setScore (0f); ret.setX (0); ret.setY (1000); вернуться в отставке; }} И эти мутации населения функция sortBirds общественных ArrayList (ArrayList птица) {ArrayList RET = птицы; Collections.sort (в отставке, новый компаратор () {@Override общественного ИНТ сравнения (Птичий птица, птица t1) {вернуться bird.getScore () <t1.getScore () 1: -1;}}); lastBestScore = ret.get (0) .getScore (); вернуться в отставке; } общественного заселить ArrayList (ArrayList птиц) {птицы = sortBirds (птицы); Птица bestBird = this.birds.get (0); Птица [] Reta = новый птица [birds.size ()]; birds.toArray (РЕТ); Reta [0] = bestBird; для (INT I = 0; я <3; я ++) {// заменить 3 худших птиц с мутациями лучшей (всегда есть по крайней мере, 5 птиц) ReTa [retA.length-1-я] = bestBird.mutate (); } ArrayList RET = новый ArrayList (Arrays.asList (РЕТ)); для (Bird B: RET) {b.reset ();} ++ поколения; вернуться в отставке; } Функция Bird.reset () просто возрождает птицу и устанавливает его обратно на старт. Когда каждая птица мертва, заселить () называется. В теории, эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) для (INT I = 0; я <3; я ++) {// заменить 3 худших птиц с мутациями лучшей (всегда есть по крайней мере, 5 птиц) ReTa [retA.length-1-я] = bestBird.mutate (); } ArrayList RET = новый ArrayList (Arrays.asList (РЕТ)); для (Bird B: RET) {b.reset ();} ++ поколения; вернуться в отставке; } Функция Bird.reset () просто возрождает птицу и устанавливает его обратно на старт. Когда каждая птица мертва, заселить () называется. В теории, эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) для (INT I = 0; я <3; я ++) {// заменить 3 худших птиц с мутациями лучшей (всегда есть по крайней мере, 5 птиц) ReTa [retA.length-1-я] = bestBird.mutate (); } ArrayList RET = новый ArrayList (Arrays.asList (РЕТ)); для (Bird B: RET) {b.reset ();} ++ поколения; вернуться в отставке; } Функция Bird.reset () просто возрождает птицу и устанавливает его обратно на старт. Когда каждая птица мертва, заселить () называется. В теории, эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) Длина-1-я] = bestBird.mutate (); } ArrayList RET = новый ArrayList (Arrays.asList (РЕТ)); для (Bird B: RET) {b.reset ();} ++ поколения; вернуться в отставке; } Функция Bird.reset () просто возрождает птицу и устанавливает его обратно на старт. Когда каждая птица мертва, заселить () называется. В теории, эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) Длина-1-я] = bestBird.mutate (); } ArrayList RET = новый ArrayList (Arrays.asList (РЕТ)); для (Bird B: RET) {b.reset ();} ++ поколения; вернуться в отставке; } Функция Bird.reset () просто возрождает птицу и устанавливает его обратно на старт. Когда каждая птица мертва, заселить () называется. В теории, эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его) эти функции должны улучшить свое население в течение долгого времени, но когда птица лучше, чем другие, то следующее поколение плохо снова. Разве я неправильно, как генетические алгоритмы работы или есть ошибка в коде? (Если вам нужно больше кода я могу разместить его)
Finni
1

голосов
0

ответ
76

Просмотры

Машинное обучение: Сбор скрытых нейронов на основе данных выборки

Я недавно нашел этот ответ на вопрос о выборе хорошей структуры нейронной сети, в частности, в отношении скрытых слоев и их нейроны. Ответ дает общую формулу, которая производит неоптимальный, но хорошей отправной точкой для работы в сети. Nh = (Ns) / (а * (Ni + No)) Где: Ni = число входных нейронов. Нет = количество выходных нейронов. Ns = число образцов в наборе данных обучения. а = произвольный коэффициент масштабирования, как правило, 2-10. Так что это значит, если у меня есть 8 входов, 8 выходов (режим регрессии), а также обучающий набор из 37 миллионов примеров? Подключив в числах с коэффициентом масштабирования 10, более 230 тысяч скрытых нейронов и снижение, что коэффициент масштабирования будет единственной причиной, чтобы идти вверх. Конечно, это слишком много? Для уточнения, набор обучения фондового рынка Подсвечника данные, и я пытаюсь обучить сеть, чтобы предсказать, что следующая свеча может выглядеть, учитывая текущий (и, возможно, несколько предыдущих тоже). Я планирую использовать обратное распространение, который я знаю очень ресурсоемкий, поэтому, конечно, я не нужен сотни тысяч нейронов в скрытых слоях, чтобы сделать сеть эффективной, будет ли?
w0f
1

голосов
0

ответ
21

Просмотры

Использование UUID в учебных наборов данных

Я совершенно новой для создания моделей прогнозирования, является то, что можно использовать набор данных ж / UUID, чтобы создать модель, и как только модель готов, предсказать подмножество ж / UUID. Вот пример COL1, COL2, PARAM1 4e259802-3b80-4e55, 48a9f0af-0c83-4766-a5af, 1a844429-b829-4545 .. .. Я хотел бы дать параметр моей модели и получить результат с UUID,. PARAM1: 1a844429-b456-4545 -> MODEL -> ПРОГНОЗ :: COL1: 4e349802-3b80-4e55, COL2: ... Это можно сделать, таким образом, или Я преобразовать / расплющить мой набор данных только с плавающей точкой значения, которые будут соответствовать моему UUID? Заранее спасибо.
dbrrt
1

голосов
1

ответ
458

Просмотры

How to reuse LSTM layer and variables in variable scope (attention mechanism)

I have an issue in my code where I would like to share weights in my lstm_decoder (so essentially just use one LSTM). I know there are a few resources online on that but I am still unable to understand why the following does not share weights: initial_input = tf.unstack(tf.zeros(shape=(1,1,hidden_size2))) for index in range(window_size): with tf.variable_scope('lstm_cell_decoder', reuse = index > 0): rnn_decoder_cell = tf.nn.rnn_cell.LSTMCell(hidden_size, state_is_tuple = True) output_decoder, state_decoder = tf.nn.static_rnn(rnn_decoder_cell, initial_input, initial_state=last_encoder_state, dtype=tf.float32) # Compute the score for source output vector scores = tf.matmul(concat_lstm_outputs, tf.reshape(output_decoder[-1],(hidden_size,1))) attention_coef = tf.nn.softmax(scores) context_vector = tf.reduce_sum(tf.multiply(concat_lstm_outputs, tf.reshape(attention_coef, (window_size, 1))),0) context_vector = tf.reshape(context_vector, (1,hidden_size)) # compute the tilda hidden state \tilde{h}_t=tanh(W[c_t, h_t]+b_t) concat_context = tf.concat([context_vector, output_decoder[-1]], axis = 1) W_tilde = tf.Variable(tf.random_normal(shape = [hidden_size*2, hidden_size2], stddev = 0.1), name = "weights_tilde", trainable = True) b_tilde = tf.Variable(tf.zeros([1, hidden_size2]), name="bias_tilde", trainable = True) hidden_tilde = tf.nn.tanh(tf.matmul(concat_context, W_tilde)+b_tilde) # hidden_tilde is [1*64] # update for next time step initial_input = tf.unstack(tf.reshape(hidden_tilde, (1,1,hidden_size2))) last_encoder_state = state_decoder print(initial_input, last_encoder_state) # predict the target W_target = tf.Variable(tf.random_normal(shape = [hidden_size2, 1], stddev = 0.1), name = "weights_target", trainable = True) print(W_target) logit = tf.matmul(hidden_tilde, W_target) logits = tf.concat([logits, logit], axis = 0) logits = logits[1:] I would like to use the same LSTM cell and the same W_target for each loop iteration. However, I get the following output for print(initial_input, last_encoder_state) and print(W_target) for window_size = 2 in the loop. [] LSTMStateTuple(c=, h=) [] LSTMStateTuple(c=, h=) Update: After Maxim's comments, I tried the following syntax for index in range(window_size): with tf.variable_scope('lstm_cell_decoder', reuse = index > 0): rnn_decoder_cell = tf.nn.rnn_cell.LSTMCell(hidden_size,reuse=index > 0) output_decoder, state_decoder = tf.nn.static_rnn(rnn_decoder_cell, ...) W_target = tf.get_variable(...) It now shares the Variable W_target properly but there is still an issue for sharing the lstm cell/weights: ] LSTMStateTuple(c=, h=) [] LSTMStateTuple(c=, h=)
Tom
1

голосов
1

ответ
147

Просмотры

Keras сверточной сеть скоринг низко на CIFAR-10 Dataset

Я пытаюсь обучить CNN на Dataset CIFAR-10 в Keras, но я только получаю точность около 10%, в основном случайным образом. Я тренируюсь более 50 эпох, с партией размером 32 и скорости 0,01 обучения. Есть ли что-нибудь, в частности, что я делаю неправильно? импорт ОС импорт NumPy в н.п. импорта панд как э.р. от PIL импорта изображения из keras.models импорта модели из keras.layers импортируют Input, Плотный, Conv2D, MaxPool2D, Выпадение, Свести из keras.optimizers импорта синг из keras.utils импорта np_utils # trainingData = np.array ([np.array (Image.open ( "поезд /" + ж)) для F в os.listdir ( "поезд")]) #shape: 50k, 32, 32, 3 # testingData = пр. массив ([np.array (Image.open ( "тест /" + ж)) для F в os.listdir ( "тест")]) #shape: такой же, как обучение # # trainingLabels = np.array (pd.read_csv ( "trainLabels.csv")) [:,
Rushil Joshi
1

голосов
0

ответ
331

Просмотры

Inception_v3 finetuning : Running model failed: Not found: FeedInputs: unable to find feed output input

Я пытаюсь для тонкой настройки модели inception_v3 для уменьшения числа пользовательских классов. Я последовал пример сценария finetune_inception_v3_on_flowers.sh переквалифицироваться модели. Переподготовка скрипт, созданный список .data, .meta и .index файлов. Я также способен генерировать файл .pb из этих контрольных файлов с помощью утилиты freeze_graph. Я использовал следующие команды, чтобы заморозить граф Базэл-бен / tensorflow / питон / инструменты / freeze_graph --input_graph = / Главная / Обучение / TMP / inception_v3 / graph.pbtxt --input_checkpoint = / Главная / Обучение / TMP / inception_v3 / model.ckpt -1000 --input_binary = ложь --output_graph = / дом / обучение / frozen_inception_v3.pb --output_node_names = InceptionV3 / Предсказания / Reshape_1 Все вроде бы хорошо, пока я не попытался проверить свою модель с помощью label_image утилиты. Переквалифицировался модель, кажется, не имеет входной слой, label_image утилита дает мне следующее сообщение об ошибке, 2018-02-14 17: 22: 31,253014: E tensorflow / примеры / label_image / main.cc: 349] Запуск модели не удалось: не найдены: FeedInputs: Невозможно найти выходной канал вывода входного summarize_graph подтвердил тот же, выход из него есть, нет входы не заметили. Нет переменная не заметили. Найдены 1 возможных выходов: (название = InceptionV3 / Предсказание / Reshape_1, оп = Reshape) Найдены 21992543 (21.99M) константные параметры, 0 (0) переменных параметров, а также 0 control_edges Op типов, используемые: 493 Уст, 190 идентичности, 95 Conv2D, 94 Relu, 94 FusedBatchNorm, 15 ConcatV2, 10 AvgPool, 4 MaxPool, 2 Добавить, 2 Mul, 2 Reshape, 1 этаж, 1 FIFOQueueV2, 1 QueueDequeueV2, 1 RandomUniform, 1 RealDiv, 1 BiasAdd, 1 Софтмакс, 1 Squeeze, 1 Sub Я наткнулся на подобный вопрос, но я не очень четко решение, предложенное. Я очень новой для ML и tensorflow, и я не могу оставлять комментарии к первоначальному вопросу, а также. Я не уверен, где я могу добавить входной слой, так что я могу запустить label_image на созданный файл пб. Любая помощь или указатели очень высоко. Спасибо.
Pragnesh
1

голосов
0

ответ
128

Просмотры

Преобразование файла MatLab.mat в текстовый файл для подготовки данных CNN.

Я ищу использовать Поза данные из этих сайтов: https://bensapp.github.io/flic-dataset.html http://human-pose.mpi-inf.mpg.de/#overview Но земля данные истина заключается в MatLab форма, я пытаюсь использовать сеть YOLO, чтобы попытаться классифицировать эти изображения, однако, YOLO требует этикеток подспутниковых быть форматом текстового файла. есть идеи как это сделать? В основном моя цель состоит в том, чтобы попытаться обучить сеть YOLO с этими образами путем преобразования их наземной истины в нужном формат и найти конечности и суставы в этих изображениях.
Richard Price-Jones
1

голосов
1

ответ
584

Просмотры

Спарк и Scala, добавить новый столбец со значением из другого dataframe путем сопоставления общего ключа [дубликат]

Этот вопрос уже есть ответ здесь: Как объединить два DataFrames и изменить столбец для отсутствующих значений? 3 ответов Как сделать левое внешнее соединение в свече SQL Server? 3 ответов у меня есть 2 dataframes. df1 = деп-код ранга а 1 BCD 2 df2 = некоторые перевалы ... отд-код ABC BCD а Я хочу, чтобы добавить новый столбец в df2 в ранге с df1.dep-код = результатом df2.dep-кода - некоторые перевалами. .. отд-код ранг а 1 BCD 2 а-
Amey Totawar
1

голосов
0

ответ
31

Просмотры

Как обрабатывать множество небольших моделей tensorflow для серверных прогнозов на GPU

Я планирую создать много довольно мало (я представляю ~ 50MB) модель классификации для каждого пользователя моего приложения. У меня есть две основные модели, которые ~ 500МБ каждый назовём их А и Б. У меня есть питон скрипт, который загружает первые модели A и B, а затем создает локальный сокет, который прослушивает строку с пути к файлу изображения (пересылаются когда пользователь загружает изображение через HTTP), где он затем запускает предсказывает для модели A, а затем B с входным изображением. Это отличное и эффективное, но теперь мне нужно, чтобы добавить свой маленькую модель обычай пользователя, который загрузил изображение, но это, вероятно, очень замедлить работу системы, как система должна будет загрузить эту модель каждый раз, когда запрос сделан (занимает далеко больше, чем метод прогнозирования). Есть в любом случае вокруг этого? Мой 6GB 1060 GPU ограничивается ~ 100 маленьких моделей: ((6000 - 1000) / 50) = ((6GB - (A + B)) / маленькая модель) `, так что я не могу попытаться просто загрузить все модели индивидуально, как я хотел бы потенциально иметь более 100 пользователей. Я, вероятно, собираюсь создать скрипт сессию модели питона для каждого из этих пользователей с одной и той же идеей, что и первым сценарий питона и первым сценарием питона отправит сообщение сокета с выходом модели B на небольшую модели сессию. Эти маленькие модели также будут подготовлены индивидуально (периодически) для обеспечения конфиденциальности и эффективности причин, так что я не могу просто создать одну большую модель C (я не думаю). Я надеюсь, что моя проблема имеет смысл. Пожалуйста, задавайте вопросы! Я, вероятно, собираюсь создать скрипт сессию модели питона для каждого из этих пользователей с одной и той же идеей, что и первым сценарий питона и первым сценарием питона отправит сообщение сокета с выходом модели B на небольшую модели сессию. Эти маленькие модели также будут подготовлены индивидуально (периодически) для обеспечения конфиденциальности и эффективности причин, так что я не могу просто создать одну большую модель C (я не думаю). Я надеюсь, что моя проблема имеет смысл. Пожалуйста, задавайте вопросы! Я, вероятно, собираюсь создать скрипт сессию модели питона для каждого из этих пользователей с одной и той же идеей, что и первым сценарий питона и первым сценарием питона отправит сообщение сокета с выходом модели B на небольшую модели сессию. Эти маленькие модели также будут подготовлены индивидуально (периодически) для обеспечения конфиденциальности и эффективности причин, так что я не могу просто создать одну большую модель C (я не думаю). Я надеюсь, что моя проблема имеет смысл. Пожалуйста, задавайте вопросы!
maxisme
1

голосов
1

ответ
266

Просмотры

Prediction Failed on keras model in Google ML-Engine

I am working through a tutorial at the moment which covers using a Keras based model on Google's cloud services with their ML-Engine. At this stage I have the model working fine for local predictions etc, and have successfully placed the exported model into a GC-bucket. I have also created the google cloud ML-Engine model successfully. When I try to run a prediction off the cloud hosted model, I the following error is produced. Error: C:\mydir>gcloud ml-engine predict --model=[mymodel] --json-instances=sample_input_prescaled.json { "error": "Prediction failed: Error during model execution: AbortionError(code=StatusCode.FAILED_PRECONDITION, details=\"Attempting to use uninitialized value dense_4/bias\n\t [[Node: dense_4/bias/read = Identity[T=DT_FLOAT, _class=[\"loc:@dense_4/bias\"], _output_shapes=[[1]], _device=\"/job:localhost/replica:0/task:0/cpu:0\"](dense_4/bias)]]\")" } I can see that this error is refering to an uninitialised value 'dense_4', which looks like the last layer within the Keras model, but I'm not sure if/why this would be tripping up the process? Does anyone have some insight to the cause of this error message? Below is the keras model which I am using from the tutorial, and the json file for the test prediction. export_model.py import pandas as pd import keras from keras.models import Sequential from keras.layers import * import tensorflow as tf training_data_df = pd.read_csv("sales_data_training_scaled.csv") X = training_data_df.drop('total_earnings', axis=1).values Y = training_data_df[['total_earnings']].values # Define the model model = Sequential() model.add(Dense(50, input_dim=9, activation='relu')) model.add(Dense(100, activation='relu')) model.add(Dense(50, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(loss='mean_squared_error', optimizer='adam') # Create a TensorBoard logger logger = keras.callbacks.TensorBoard( log_dir='logs', histogram_freq=5, write_graph=True ) # Train the model model.fit( X, Y, epochs=50, shuffle=True, verbose=2 ) # Load the separate test data set test_data_df = pd.read_csv("sales_data_test_scaled.csv") X_test = test_data_df.drop('total_earnings', axis=1).values Y_test = test_data_df[['total_earnings']].values test_error_rate = model.evaluate(X_test, Y_test, verbose=0) print("The mean squared error (MSE) for the test data set is: {}".format(test_error_rate)) model_builder = tf.saved_model.builder.SavedModelBuilder("exported_model") inputs = { 'input': tf.saved_model.utils.build_tensor_info(model.input) } outputs = { 'earnings': tf.saved_model.utils.build_tensor_info(model.output) } signature_def = tf.saved_model.signature_def_utils.build_signature_def( inputs=inputs, outputs=outputs, method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME ) model_builder.add_meta_graph_and_variables( K.get_session(), tags=[tf.saved_model.tag_constants.SERVING], signature_def_map={ tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature_def } ) model_builder.save() sample_input_prescaled.json { "input": [0.4999, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.5] }
apollocr
1

голосов
0

ответ
206

Просмотры

Угловые потери в tensorflow не уменьшаются

Недавно я реализую в «FC4: Полностью сверточном Цветом Постоянство с Confidence-взвешенным Pooling» бумагой в tensorflow. В работе, угловая потеря определяются как «угловая потеря = агссоз (cosine_distance (Vector1, Vector2))». Тем не менее, я попробовал несколько способов реализации этой функции потерь, но в процессе обучения они вряд ли когда-либо уменьшились. Соответствующий код показан ниже, любая помощь и предложения приветствуются. Защиту build_model (само): self.learning_rate = tf.placeholder (tf.float32) self.input = tf.placeholder (tf.float32, [self.batch_size, Ничего, Ничего, 3]) self.target = tf.placeholder ( tf.float32, [self.batch_size, 3]) #The формы result_vec является [self.batch_size, 3] self.result_vec = self.build_network (self.input, 'color_net') cos_dist = tf.losses.cosine_distance (сам .TARGET, self.result_vec,
Secret_Wang
1

голосов
1

ответ
101

Просмотры

Neural networks - why everybody has different approach with XOR

Currently I'm trying to learn how to work with neural networks by reading books, but mostly internet tutorials. I often see that "XOR is 'Hello World' of neural networks". But here is a thing: The author of one tutorial says that for neural network that calculates XOR value we should use 1 hidden layer with 2 neurons. Also he uses backpropagation with deltas to adjust weights. I implemented this, but even after 1 million epochs I have a problem that network is stuck with input data 1 and 1. There should be "0" as an answer, but answer is usually 0.5something. I checked my code, it is correct. If I'll try to add just 1 more neuron in the hidden layer, network is successfully calculating XOR after ~50 000 epochs. At the same time some people saying that "XOR is not a trivial task and we should use network with 2-3 or more layers". Why? Come on, if XOR creates so much problems, maybe we shouldn't use it as 'hello world' of neural networks? Please explain what is going on.
user64675
1

голосов
1

ответ
62

Просмотры

переобучения сокращения машинного обучения

Ребята я делаю машинное обучение с Coursera по Первозванному нг. В одной из лекций он описал, как мы можем предотвратить переобучения, изменяя функцию стоимости. Мой вопрос заключается в коде ниже мы добавляем два условия на последний и снижении стоимости theta3 и theta4. так почему же мы точно добавляя эти термины, я имею в виду, мы можем уменьшить стоимость theta3 и только theta4 и это позволит снизить стоимость нашей функции затрат. minθ 1 / 2mΣmi = 1 (hθ (х (I)) - у (я)) ^ 2 + 1000 * (θ3) ^ 2 + 1000 * (θ4) ^ 2
Rahul
16

голосов
1

ответ
4.6k

Просмотры

(Python - sklearn) How to pass parameters to the customize ModelTransformer class by gridsearchcv

Ниже мой трубопровод, и кажется, что я не могу передать параметры в моей модели, используя класс ModelTransformer, который я беру его по ссылке (http://zacstewart.com/2014/08/05/pipelines-of- featureunions-оф-pipelines.html) сообщение об ошибке имеет смысл для меня, но я не знаю, как это исправить. Любая идея, как это исправить? Благодарю. # Определить трубопровод трубопровода = трубопровода ([( 'Вект', DictVectorizer (разреженный = False)), ( 'шкала', preprocessing.MinMaxScaler ()), ( 'ESS', FeatureUnion (n_jobs = -1, transformer_list = [( 'гк', ModelTransformer (RandomForestClassifier (n_jobs = -1, random_state = 1, n_estimators = 100))), ( 'SVC', ModelTransformer (SVC (random_state = 1))),], transformer_weights = нет)), (» эс, EnsembleClassifier1 ()), ]) # Определить параметры для параметров трубопровода = { '' ess__rfc__n_estimators: (100, 200),} класса # ModelTransformer. Он принимает его от связи (http://zacstewart.com/2014/08/05/pipelines-of-featureunions-of-pipelines.html) класса ModelTransformer (TransformerMixin): Защита __init __ (я, модель): self.model = модель четкости подходит (Self, * арг ** kwargs): self.model.fit (* арг, ** kwargs) Самовозврат Защите преобразования (самоощущение, X, ** transform_params): возвращение DataFrame (self.model.predict (X)) = grid_search GridSearchCV (трубопроводы, параметры, n_jobs = -1, многословный = 1, переоснащение = True) Сообщение об ошибке: ValueError: Недействительное n_estimators параметров для оценивани ModelTransformer.
nkhuyu
1

голосов
0

ответ
302

Просмотры

Что делает (слишком большой) нейронной сети расходятся?

Я построить нейронную сеть (NN), имеющую только 6 входов и 8 классов (это, таким образом, классификатор я строй). Чтобы дать немного больше фона: Количество обучающих выборок 80000 образцов как размер набора DEV / кросс-валидации (я знаю, что это не очень хороший раскол, но сравнивать мои выходы с теми, моим коллегой, я должен держать поезд / DEV устанавливает как есть). Функции ввода следующие относительно хорошо определенные функции плотности вероятности, хотя и не гауссовые. В связи с большим количеством входов по отношению к числу функций, набор данных «практически невозможно», чтобы overfit, и я до сих пор не удалось это сделать (даже с очень большими сетями). Это интуитивно правильно, так как функция PDF в накладываются друг на друга и достаточно плотной, чтобы предотвратить изгиб петли, чтобы собрать больше и больше образцов. Сейчас, так как я хотел, чтобы проверить пределы алго и тем самым также мой NN, я провел недельную методом Монте-Карло сессии изменяющуюся все параметры, включая число слоев и число узлов в слое как гиперпараметров. Я заметил, что во многих случаях (когда количество слоев и узлов в слое достаточно велики) Н.Н. сходится по прошествии некоторого времени (скажем 300+ interations), то уровни, но после нескольких сотен итераций больше, он начинает расходиться и становятся нестабильными (не гладкие и показывая большие скачки). Я знаю, что из основной теории Н.Н., что для случая я описываю (6 входов, 8 классов) один скрытый слой с около 10 узлов должны быть достаточно (и это делает, кстати), но я бы ожидать NN иметь больше слоев и имеющие более узлов на один слой, по крайней мере, не расходятся и оставаться приблизительно вокруг минимума. Особенно, так как, когда градиент равен нулю, то размер шага должен стать нулевым, по определению, так? или я что-то отсутствует? Теперь мой вопрос имеет два аспекта: Есть ли какая-то теория о том, как можно предсказать, когда NN будет расходиться? Так как я собираюсь попробовать свои силы на проблему более подходящей для решения с помощью (сверточного) NN, я хотел бы, по крайней мере иметь некоторое представление в этом вопросе. Как это возможно, что NN расходится? Обратите внимание, что в связи с тем, что я использовал градиент проверки, чтобы проверить мой backprop и тот факт, что небольшой NNS не расходиться, у меня есть уверенность в моей NN (хотя я использовать только Numpy / питон и без автоматического-backprop рамки как Keras / TensorFlow). 2.1 У меня есть ощущение, что это является численная реализация штуковина, однако, даже в этом случае, как бы я быть в состоянии предотвратить это? Любая информация, советы, рекомендации будут высоко оценены. 2. 2 мой случай довольно сильно отличается от большинства (компьютерного зрения) случаях (кошки классификаторов и такие), и таким образом небольшого числа функций / входов, вероятно, является фактором, тоже. В компьютерных сетях видения, число особенностей является способом выше, чем число узлов, очень много в отличии от моего простого случая. С наилучшими пожеланиями и спасибо заранее за любую обратную связь. Мой оптимизатор оптимизация ADAM, который я реализовал в NumPy: Защиту update_with_adam (W, б, Dw, дБ, v_dW, v_db, s_dW, s_db, альфа, Истэп, beta_v = 0,9, beta_s = 0,999): ""»Update параметры с помощью оптимизации ADAM ""»EPS = 1e-8 nof_layers = Len (Вт) для л в диапазоне (1, nof_layers):
furk
1

голосов
0

ответ
147

Просмотры

Apache Flink Стохастический Outlier Выбор по потоку данных

Я пытаюсь использовать модель StochasticOutlierSelection пакета Apache Flink ML. Я не могу работать, как использовать его с Кафкой в ​​качестве источника данных, я понимаю, что это нуждается в DataSet, а не DataStream, но я, кажется, не быть в состоянии окна моего Кафка DataStream стать DataSet. Есть ли способ, я могу относиться к моему потоку в виде серии небольших DataSets. Например, есть способ сказать, каждые 10 элементов в потоке, соответствующий шаблон (скользящее окно элементов уникального идентификатор) рассматривать их в качестве DataSet фиксированного размера и выявлением каких-либо выбросов в течение этого фиксированного набора данных размера? Сценарий я ищу, чтобы создать это: источник данных -> Кафка Тема 1 -> Flink предварительная обработка -> Кафка Тема 2 -> FLiNK Группы по ID -> Обнаружение Outlier на группах у меня уже есть рабочая реализация до предварительно обработка,
Joe
1

голосов
0

ответ
60

Просмотры

Почему SVM классификатор создает плохие результаты с LDA в классификации звуковых данных?

Я использую SVM классификатор, чтобы классифицировать мой аудиоданные (приборные штрихи). Я использую LDA в качестве метода восстановления функции для уменьшения размеров объектов. После применения классификатора результатов я получаю очень низкая (точность только 45%). С теми же данными без какого-либо снижения функции и с помощью PCA я могу получить точность более чем 90%. Что может быть проблема?
SubodhD
1

голосов
0

ответ
38

Просмотры

Accord.net C45 проблема точек сетки

Я только начинаю с Accord.net и ML. У меня есть набор данных, который я построил (я уверен, что нет ошибок в нем) Колонка 1 Координата X Колонка 2 является Y координата столбца 3 является выход (между 1 и 8) (7 возможных исходов) вопрос, как представляется, что алгоритм не строить правила, как х> 10 && х <20, кажется, использовать только х или у значения один раз в правилах, поэтому результат может быть только 4 возможных варианта DecisionVariable [] атрибуты = {новый DecisionVariable ( «Xcor» , DecisionVariableKind.Continuous), новый DecisionVariable ( "ycor", DecisionVariableKind.Continuous)}; вар C45 = новые C45Learning (атрибуты); ListROWS = FILE_FUNCTIONS.GET_FILEROWS (); INT TOTROWS = ROWS.Count (); двойные [] [] входы = новый двойной [TOTROWS] []; INT [] выходы = новый INT [TOTROWS]; INT = 0; Еогеасп (строка ROW в строках) {строка [] ROWARRAY = ROW.Split ( '|'); двойная х = Convert.ToDouble (ROWARRAY [0]); двойная у = Convert.ToDouble (ROWARRAY [1]); INT Рез = Convert.ToInt32 (ROWARRAY [2]); Входы [I] = новый двойной [] {х, у}; выходы [I] = разреш; я ++; } DecisionTree дерево = c45.Learn (входы, выходы); Я хотел бы присоединить весь набор данных, однако я не могу видеть, как. несколько строк данных под 191,810946844273 | +36,9122812814319 | 1 248,564145210943 | +29,0892297630513 | 1 +257,615301273994 | 24,4442924810173 | 1 129,675980149507 | +13,2879068417561 | 3 134,813121928929 | 12,5544953189123 | 3 132,122238639478 | 15,7326103428065 | 3 171,017749679524 | +16,7997445714401 | 2 +195,480334579228 | 14,5995107904566 | 2 +194,501831882918 | 16,7997445714401 | 2 281,408852439504 | +12,6201425479222 | 4 281,197749719569 | +15,8549964244587 | 4 +36,2920287712232 | 40.
user2701631
1

голосов
0

ответ
236

Просмотры

Как я могу улучшить точность CNN-LSTM классификатора в Keras

Я разрабатываю классификатор CNN-LSTM в keras, который принимает в качестве входных последовательностей ДНК длины 500 и пытается классифицировать последовательности как либо в классе 1 или 0. Я приобрел наборы данные и все лучшие тесты из научно-исследовательской работы [https://file.scirp.org/pdf/JBiSE_2016042713533805.pdf] Моя цель состоит в том, чтобы превзойти контрольные показатели, полученные в работе, где они использовали структуру CNN. Моя попытка попробовать сочетание архитектуры CNN-LSTM, чтобы попытаться улучшить эту точность они достигли. Проблема заключается в том, что они всегда получают 2-3% лучшую точность, то эту архитектуру. Является ли моя модель правильно, и она может быть улучшена в любом случае, чтобы получить, что дополнительные лучшие результаты, так по крайней мере, я могу улучшить свою точность. Мой код выглядит следующим образом: # Каждая последовательность считывается и разделена на 3-грамм, а затем один горячий кодируются как в работе. X_train_seqs, Однако я уже добавил много отсева, чтобы удалить некоторые из переобучения. Ниже приводится изображение обучающих кривых как подготовки / проверки. https://imgur.com/a/ipBIy>
D.Bellick
1

голосов
0

ответ
83

Просмотры

получать подобные предсказания на данных при прогнозировании с использованием tensorflow

Я новичок в области машинного обучения и я работаю над проектом простого для прогнозирования потребления электроэнергии в домашнем хозяйстве с использованием данных, доступными здесь. Данные состоят из глобальной минуты в среднем активной мощности каждой минуты в течение 4-х лет. Глава данных смотрел что-то вроде этого. Дата Время Global_active_power Global_reactive_power Напряжение \ 0 16/12/2006 17:24:00 4,216 0,418 234,84 1 16/12/2006 17:25:00 5,360 0,436 233,63 2 16/12/2006 17:26:00 5,374 0,498 233,29 3 16 / 12/2006 17:27:00 5,388 0,502 233,74 4 16/12/2006 17:28:00 3,666 0,528 235,68 Global_intensity Sub_metering_1 Sub_metering_2 Sub_metering_3 0 18. 4 0,0 1,0 17,0 1 23,0 0,0 1,0 16,0 2 23,0 0,0 2,0 17,0 3 23,0 0,0 1,0 17,0 4 15,8 0,0 1,0 17,0 Затем я объединил столбец даты и времени, чтобы создать объект DateTime, а затем создал новый столбец временной метки и сохранен «ц» и «Global_active_power» в другом файле CSV, используя следующий код. DF [ 'Отметка времени'] = pd.to_datetime (DF [ 'Дата'] + ' '+ DF [' Time']) DF = DF [[ 'Global_active_power', '' TS]] DF [ 'ц'] = DF .Timestamp.values.astype (np.int64) df.to_csv ( 'final.csv') глава окончательным. CSV смотрел что-то вроде этого Global_active_power ц 0 ​​4,216 1166289840000000000 1 5,360 1166289900000000000 2 5,374 1166289960000000000 3 5,388 1166290020000000000 4 3,666 1166290080000000000 Затем я создал модель многослойного персептрона с использованием tensorflow предсказать global_active_power на основе метки времени (с использованием временных меток ц как функции и global_active_power как метки), используя следующий код. импортировать tensorflow, как тс импорт панд как PD импорта NumPy, как нп из sklearn.preprocessing импорта данных MinMaxScaler = pd.read_csv ( 'final.csv', DTYPE = { 'Global_active_power': 'с плавающей точкой'}) data.fillna (0, Inplace = True) данных = data.values ​​п = data.shape [0] р = data.shape [1] train_start = 0 train_end = INT (np.floor (0. arange (LEN (Y_train))) X_train = X_train [shuffle_indices] Y_train = Y_train [shuffle_indices] epoch_loss = 0 при в диапазоне (0, Len (Y_train) // batch_size): начать = I * batch_size batch_x = X_train [начать: старт + batch_size] batch_y = Y_train [Старт: старт + batch_size] _, с = sess.run ([OPT, MSE], feed_dict = {X: batch_x, Y: batch_y}) epoch_loss + = с печати ( 'эпоха', эпоха 'завершены из', эпохи, 'потеря:', epoch_loss) mse_final = sess.run (MSE, feed_dict = {X: X_test, Y: Y_test}) печать ( 'Final Error', mse_final) Я бег только один эпоха, потому что это занимает слишком много времени, чтобы запустить одну эпохи и уменьшение потерь эпохи после каждой эпоха была очень незначительной. После запуска следующего кода, который я получил этот выход Epoch 0 завершена из 1 потери: 61.614460044074804 Окончательной ошибка 0. 008720885 Но когда я увидел, предсказанный выход и сравнил его с Y_test предсказанный выход имел почти такое же значение для каждого элемента. PRED = sess.run (вне, feed_dict = {X: X_test})
Prateek Surana
1

голосов
0

ответ
347

Просмотры

Установить labelme аннотирования

Файл "/ Users / хххх / anaconda3 / бен / labelme", ​​строка 7, в от labelme.app импорта основной Файл "/Users/rafikgouiaa/anaconda3/lib/python3.6/site-packages/labelme/app.py", линия 37, в с PyQt4.QtGui импорта * ModuleNotFoundError: нет модуль с именем «PyQt4» ** Похоже, что labelme ищет pyqt5 в Python 2.7, а не в Python 3.6, где установлен pyqt5. Любая помощь по установке labelme или какие-либо другие, отличные labelme и инструментов Matlab инструментов?
BetterEnglish

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

Связанные вопросы