質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

693閲覧

keras_bertに関する質問

akasateru

総合スコア21

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/12/10 16:19

編集2020/12/10 17:31

BERTの学習済みモデルをkeras_bertを用いて再学習し.h5形式で保存しました。
また、.h5形式のモデルをロードし、入力した文章の[CLS]の特徴量を取得したいと考えています。
調べたところextract_embeddingsを使用し特徴量を取得しできそうな感じがしたのですが、ckpt形式で保存されていないといけないと言うことでした。
.h5形式で保存したモデルから特徴量を取得する方法がわからなくて困っています。
もしよろしければご教授いただけると幸いです。

python

1import numpy as np 2import os 3import csv 4import codecs 5from keras_bert import load_trained_model_from_checkpoint 6from keras_bert import Tokenizer 7from keras.optimizers import Adam 8from keras.models import Model, load_model 9from keras.layers import Dense 10from keras_bert.backend import keras 11from keras_bert.layers import TokenEmbedding, Extract 12from keras_pos_embd import PositionEmbedding 13from sklearn.metrics import classification_report 14from keras.utils import np_utils 15from keras_position_wise_feed_forward import FeedForward 16from keras_multi_head import MultiHeadAttention 17from keras_transformer import gelu 18from sklearn import metrics 19from keras_layer_normalization import LayerNormalization 20 21 22x_train = np.load('dataset'+os.sep+'train'+os.sep+'x_train.npy').tolist() 23y_train = np.load('dataset'+os.sep+'train'+os.sep+'y_train.npy') 24x_train =[np.array(x_train[0]),np.array(x_train[1])] 25 26BATCH_SIZE = 16 27EPOCHS = 1 28LR = 5e-5 29SEQ_LEN = 64 30BERT_DIM = 768 31 32pretrained_path = 'uncased_L-12_H-768_A-12' 33config_path = os.path.join(pretrained_path, 'bert_config.json') 34checkpoint_path = os.path.join(pretrained_path, 'bert_model.ckpt') 35vocab_path = os.path.join(pretrained_path, 'vocab.txt') 36 37bert = load_trained_model_from_checkpoint( 38 config_path, 39 checkpoint_path, 40 training=True, 41 trainable=True, 42 seq_len=SEQ_LEN 43) 44 45inputs = bert.get_layer('NSP-Dense').output 46output = Dense(units=1, activation='sigmoid')(inputs) 47model = Model(bert.inputs[:2], output) 48model.summary() 49 50# from keras_bert import AdamWarmup, calc_train_steps 51# total_steps, warmup_steps = calc_train_steps( 52# num_example=np.array(x_train).shape[0], 53# batch_size=BATCH_SIZE, 54# epochs=EPOCHS, 55# warmup_proportion=0.1, 56# ) 57 58model.compile( 59 optimizer=Adam(lr=0.001,beta_1=0.9,beta_2=0.999), 60 # optimizer = AdamWarmup(total_steps, warmup_steps, lr=1e-3, min_lr=1e-5), 61 loss='binary_crossentropy', 62 metrics=['acc'] 63) 64 65result = model.fit( 66 x_train, 67 y_train, 68 epochs=EPOCHS, 69 batch_size=BATCH_SIZE 70) 71 72print(result.history.keys()) 73import matplotlib.pyplot as plt 74plt.plot(range(1,EPOCHS+1), result.history['acc'], label='acc') 75plt.plot(range(1,EPOCHS+1), result.history['loss'], label='loss') 76plt.xlabel('epoch') 77plt.ylabel('acc') 78plt.legend() 79plt.savefig('plt.jpg') 80 81model.save('BERT_matching_model.h5') 82 83model_path = 'BERT_matching_model' 84 85texts = ['all work and no play', 'makes jack a dull boy'] 86from keras_bert import extract_embeddings 87embeddings = extract_embeddings(model_path, texts) 88print(len(embeddings[0])) 89

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問