第五課第二週筆記

2021-08-25 17:19:23 字數 2998 閱讀 2085

onehot轉換

def

convert_to_one_hot

(y, c):

y = np.eye(c)[y.reshape(-1)]

return y

def

read_glove_vecs

(glove_file):

with open(glove_file, 'r', encoding='utf8') as f:

words = set() # 集合避免重複

word_to_vec_map = {} # 詞到詞向量

for line in f: # 預設按行讀取

line = line.strip().split() # strip移除字串頭尾指定的字串行,預設為空格

curr_word = line[0] # 取出單詞

words.add(curr_word) # 新增單詞

word_to_vec_map[curr_word] = np.array(line[1:], dtype=np.float64) # 用字典建立索引

i = 1

words_to_index = {}

index_to_words = {}

for w in sorted(words): # sorted可以對所有可迭代物件進行排序操作,返回乙個新的list

embedding層經過下面函式,完成了i love you ---> [185457, 2262788, 394475, 0, 0]的轉換

m = x.shape[0] # 有多少個句子

x_indices = np.zeros(shape=(m, max_len))

for i in range(m):

sentence_words = (x[i].lower()).split()

j = 0

for w in sentence_words:

x_indices[i, j] = word_to_index[w] # 將每句話中的單詞索引為index

j +=1

return x_indices

載入之前訓練好的詞向量

def

pretrained_embedding_layer

(word_to_vec_map, word_to_index):

vocab_len = len(word_to_index) + 1

# 詞的數量

emb_dim = word_to_vec_map["cucumber"].shape[0] # 單個詞向量的維度=50

embedding_layer = embedding(input_dim=vocab_len, out_dim=emb_dim, trainable=false) # input_dim詞彙表大小,即最大整數index+1 out_dim:詞向量維度

# 設定權重

emb_matrix = np.zeros(shape=(vocab_len, emb_dim))

for word, index in word_to_index.items(): # 迴圈單詞和索引

emb_matrix[index, :] = word_to_vec_map[word]

# 設定嵌入層權重之前,需要build嵌入層

embedding_layer.build((none,))

embedding_layer.set_weights([emb_matrix])

return embedding_layer

def

emjify_v2

(input_shape, word_to_vec_map, word_to_index):

""" input_shape -- shape of the input, usually (max_len,)

"""sentence_indices = input(shape=input_shape, dtype='int32')

embedding_layer = pretrained_embedding_layer(word_to_vec_map, word_to_index)

embeddings = emedding_layer(sentence_indices) # 自定義的layer物件的方法,第二個括號可以傳遞入張量

x = lstm(units=128, return_sequence=true)(embeddings) # return_sequence是否全部接受

x = dropout(0.5)(x)

x = lstm(units=128, return_sequences=false)(x)

x = dropout(0.5)(x)

x = dense(units=5)(x)

x = activation('softmax')(x)

model = model(inputs=sentence_indices, outputs=x)

return model

第五課 文法

1.名詞 場所 行 來 帰 使用移動動詞時,移動的方向用助詞 表示。京都 行 我要去京都。日本 來 我來到了日本。帰 我要回家。注 助詞 讀作 2.行 行 完全否定疑問詞所問的全部範疇時,用助詞 與否定形式一起使用。行 也不去。何 食 什麼也不吃。第6課 沒有任何人在。第10課 3.名詞 交通工具 ...

C語言第五課

主要內容 二維陣列 字串陣列 多維陣列 理解 一 二維陣列 有兩個下標的陣列稱為二維陣列 定義 型別修飾符 陣列名 常量表示式1 常量表示式2 第一維的長度 第二維的長度 示例 定義乙個2行3列的二維陣列 int array 2 3 這是乙個標準的二維陣列 二維陣列的元素也稱為雙下標變數 0 1 2...

C語言第五課

c函式若不宣告型別,則預設為 int 型 在函式中,指標可以 被調函式 修改 主調函式 1 int func int a main 2 void func int num main int num 2 func int b 野指標會 指向任一地方 int pum printf x pum 指標偏移的...