最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式

 更新時間:2020年05月22日 10:52:45   作者:星夜孤帆  
這篇文章主要介紹了Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

將數(shù)據(jù)標簽變?yōu)轭愃芃NIST的one-hot編碼形式

def one_hot(indices, 
 depth, 
 on_value=None, 
 off_value=None, 
 axis=None, 
 dtype=None, 
 name=None):
 """Returns a one-hot tensor.
 
 The locations represented by indices in `indices` take value 
 `on_value`,
 while all other locations take value `off_value`.
 
 `on_value` and `off_value` must have matching data types. If 
 `dtype` is also
 provided, they must be the same data type as specified by 
 `dtype`.
 
 If `on_value` is not provided, it will default to the value `1` with 
 type
 `dtype`
 
 If `off_value` is not provided, it will default to the value `0` with 
 type
 `dtype`
 
 If the input `indices` is rank `N`, the output will have rank 
 `N+1`. The
 new axis is created at dimension `axis` (default: the new axis is 
 appended
 at the end).
 
 If `indices` is a scalar the output shape will be a vector of 
 length `depth`
 
 If `indices` is a vector of length `features`, the output shape will 
 be:
 
 ```
 features x depth if axis == -1
 depth x features if axis == 0
 ```
 
 If `indices` is a matrix (batch) with shape `[batch, features]`, the 
 output
 shape will be:
 
 ```
 batch x features x depth if axis == -1
 batch x depth x features if axis == 1
 depth x batch x features if axis == 0
 ```
 
 If `dtype` is not provided, it will attempt to assume the data 
 type of
 `on_value` or `off_value`, if one or both are passed in. If none 
 of
 `on_value`, `off_value`, or `dtype` are provided, `dtype` will 
 default to the
 value `tf.float32`.
 
 Note: If a non-numeric data type output is desired (`tf.string`, 
 `tf.bool`,
 etc.), both `on_value` and `off_value` _must_ be provided to 
 `one_hot`.
 
 For example:
 
 ```python
 indices = [0, 1, 2]
 depth = 3
 tf.one_hot(indices, depth) # output: [3 x 3]
 # [[1., 0., 0.],
 # [0., 1., 0.],
 # [0., 0., 1.]]
 
 indices = [0, 2, -1, 1]
 depth = 3
 tf.one_hot(indices, depth,
 on_value=5.0, off_value=0.0,
 axis=-1) # output: [4 x 3]
 # [[5.0, 0.0, 0.0], # one_hot(0)
 # [0.0, 0.0, 5.0], # one_hot(2)
 # [0.0, 0.0, 0.0], # one_hot(-1)
 # [0.0, 5.0, 0.0]] # one_hot(1)
 
 indices = [[0, 2], [1, -1]]
 depth = 3
 tf.one_hot(indices, depth,
 on_value=1.0, off_value=0.0,
 axis=-1) # output: [2 x 2 x 3]
 # [[[1.0, 0.0, 0.0], # one_hot(0)
 # [0.0, 0.0, 1.0]], # one_hot(2)
 # [[0.0, 1.0, 0.0], # one_hot(1)
 # [0.0, 0.0, 0.0]]] # one_hot(-1)
 ```
 
 Args:
 indices: A `Tensor` of indices.
 depth: A scalar defining the depth of the one hot dimension.
 on_value: A scalar defining the value to fill in output when 
 `indices[j]
 = i`. (default: 1)
 off_value: A scalar defining the value to fill in output when 
 `indices[j]
 != i`. (default: 0)
 axis: The axis to fill (default: -1, a new inner-most axis).
 dtype: The data type of the output tensor.
 
 Returns:
 output: The one-hot tensor.
 
 Raises:
 TypeError: If dtype of either `on_value` or `off_value` don't 
 match `dtype`
 TypeError: If dtype of `on_value` and `off_value` don't match 
 one another
 """
 with ops.name_scope(name, "one_hot", 
 [indices, depth, on_value, off_value, axis, 
  dtype]) as name:
 on_exists = on_value is not None
 off_exists = off_value is not None
 on_dtype = ops.convert_to_tensor(on_value).dtype.base_dtype 
  if on_exists else None
 off_dtype = ops.convert_to_tensor(off_value).dtype.
  base_dtype if off_exists else None
 if on_exists or off_exists:
  if dtype is not None:
  # Ensure provided on_value and/or off_value match dtype
  if (on_exists and on_dtype != dtype):
   raise TypeError("dtype {0} of on_value does not match "
   "dtype parameter {1}".format(on_dtype, dtype))
  if (off_exists and off_dtype != dtype):
   raise TypeError("dtype {0} of off_value does not match "
   "dtype parameter {1}".format(off_dtype, dtype))
  else:
  # dtype not provided: automatically assign it
  dtype = on_dtype if on_exists else off_dtype
 elif dtype is None:
  # None of on_value, off_value, or dtype provided. Default 
  dtype to float32
  dtype = dtypes.float32
 if not on_exists:
  # on_value not provided: assign to value 1 of type dtype
  on_value = ops.convert_to_tensor(1, dtype, name="
  on_value")
  on_dtype = dtype
 if not off_exists:
  # off_value not provided: assign to value 0 of type dtype
  off_value = ops.convert_to_tensor(0, dtype, name="
  off_value")
  off_dtype = dtype
 if on_dtype != off_dtype:
  raise TypeError("dtype {0} of on_value does not match "
  "dtype {1} of off_value".format(on_dtype, off_dtype))
 return gen_array_ops._one_hot(indices, depth, on_value, 
  off_value, axis, 
  name)
 
 
Enter: apply completion.
 + Ctrl: remove arguments and replace current word (no Pop-
 up focus).
 + Shift: remove arguments (requires Pop-up focus).
import tensorflow as tf
import numpy as np
data = np.linspace(0,9,10)
label = tf.one_hot(data,10)
with tf.Session() as sess:
 print(data)
 print(sess.run(label))

補充知識:數(shù)據(jù)清洗—制作one-hot

使用pandas進行one-hot編碼

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)

pandas中g(shù)et_dummies()函數(shù)可以將字段進行編碼,轉(zhuǎn)換為01形式,其中prefix可以為每個新展開的列名添加前綴。

但是,筆者發(fā)現(xiàn)它較易使用在數(shù)據(jù)為每一列為單獨的字符:

df = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'], 'C': [1, 2, 3]})

## one-hot
df_dumm = pd.get_dummies(df)

my_one_hot

但是對于數(shù)據(jù)為下面形式的可就不能直接轉(zhuǎn)換了,需要先預(yù)處理一下,之后轉(zhuǎn)換為one-hot形式:

我的做法是:

## tqdm_notebook可以導(dǎo)入tqdm包來使用
def one_hot_my(dataframe, attri):
 sample_attri_list = []
 sample_attri_loc_dic = {}
 loc = 0
 dataframe[attri] = dataframe[attri].astype(str)
 for attri_id in tqdm_notebook(dataframe[attri]):
  attri_id_pro = attri_id.strip().split(',')
  for key in attri_id_pro:
   if key not in sample_attri_loc_dic.keys():
    sample_attri_loc_dic[key] = loc
    loc+=1
  sample_attri_list.append(attri_id_pro)
 print("開始完成one-hot.......")  
 one_hot_attri = []
 for attri_id in tqdm_notebook(sample_attri_list):
  array = [0 for _ in range(len(sample_attri_loc_dic.keys()))]
  for key in attri_id:
   array[sample_attri_loc_dic[key]] = 1
  one_hot_attri.append(array)
 print("封裝成dataframe.......") 
 ## 封裝成dataframe
 columns = [attri+x for x in sample_attri_loc_dic.keys()]
 one_hot_rig_id_df = pd.DataFrame(one_hot_attri,columns=columns)
 return one_hot_rig_id_df

對屬性二值化可以采用:

## 對屬性進行二值化
def binary_apply(key, attri, dataframe):
 key_modify = 'is_' + ''.join(lazy_pinyin(key)) + '_' + attri
 print(key_modify)
 dataframe[key_modify] = dataframe.apply(lambda x:1 if x[attri]== key else 0, axis=1)
 return dataframe

對字符進行編碼,將字符轉(zhuǎn)換為0,1,2…:

## 對字符進行編碼
# columns = ['job', 'marital', 'education','default','housing' ,'loan','contact', 'poutcome']
def encode_info(dataframe, columns):
 for col in columns:
  print(col)
  dataframe[col] = pd.factorize(dataframe[col])[0]
 return dataframe

以上這篇Tensorflow實現(xiàn)將標簽變?yōu)閛ne-hot形式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文詳解凱撒密碼的原理及Python實現(xiàn)

    一文詳解凱撒密碼的原理及Python實現(xiàn)

    凱撒密碼是古羅馬愷撒大帝用來對軍事情報進行加密的算法,它采用了替換方法對信息中的每一個英文字符循環(huán)替換為字母表序列該字符后面第三個字符。本文主要為大家講解了凱撒密碼的原理及實現(xiàn),需要的可以參考一下
    2022-08-08
  • 對于Python編程中一些重用與縮減的建議

    對于Python編程中一些重用與縮減的建議

    這篇文章主要介紹了對于Python編程中一些重用與縮減的建議,來自于IBM官方技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • ubuntu中配置pyqt4環(huán)境教程

    ubuntu中配置pyqt4環(huán)境教程

    本文給大家分享的是在Ubuntu系統(tǒng)中配置pyqt4的詳細教程,有需要的小伙伴可以參考下
    2017-12-12
  • Django2.2配置xadmin的實現(xiàn)

    Django2.2配置xadmin的實現(xiàn)

    這篇文章主要介紹了Django2.2配置xadmin的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 深入解析Python中的descriptor描述器的作用及用法

    深入解析Python中的descriptor描述器的作用及用法

    在Python中描述器也被稱為描述符,描述器能夠?qū)崿F(xiàn)對對象屬性的訪問控制,下面我們就來深入解析Python中的descriptor描述器的作用及用法
    2016-06-06
  • python中的bisect模塊與二分查找詳情

    python中的bisect模塊與二分查找詳情

    這篇文章主要介紹了python中的bisect模塊與二分查找詳情,bisect是python的內(nèi)置模塊,?用于有序序列的插入和查找。?插入的數(shù)據(jù)不會影響列表的排序,更多詳細內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • pycharm通過ssh遠程連接服務(wù)器并運行代碼詳細圖文

    pycharm通過ssh遠程連接服務(wù)器并運行代碼詳細圖文

    在運行項目的過程中,由于自己電腦GPU不夠,通常需要將項目放到服務(wù)器上運行,這時就會遇到如何將pycharm和服務(wù)器進行連接,下面這篇文章主要給大家介紹了關(guān)于pycharm通過ssh遠程連接服務(wù)器并運行代碼的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python二維列表的創(chuàng)建、轉(zhuǎn)換以及訪問詳解

    Python二維列表的創(chuàng)建、轉(zhuǎn)換以及訪問詳解

    列表中的元素還可以是另一個列表,這種列表稱為多為列表,只有一層嵌套的多維列表稱為二維列表,下面這篇文章主要給大家介紹了關(guān)于Python二維列表的創(chuàng)建、轉(zhuǎn)換及訪問的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python實現(xiàn)保留小數(shù)位數(shù)的3種方法

    python實現(xiàn)保留小數(shù)位數(shù)的3種方法

    本文主要介紹了python實現(xiàn)保留小數(shù)位數(shù)的3種方法,包括格式化字符串,format()函數(shù)和round()函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Python 實現(xiàn)定積分與二重定積分的操作

    Python 實現(xiàn)定積分與二重定積分的操作

    這篇文章主要介紹了Python 實現(xiàn)定積分與二重定積分的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評論

玛纳斯县| 科技| 府谷县| 宣化县| 聊城市| 三明市| 台东市| 二手房| 大方县| 迁西县| 义乌市| 平和县| 始兴县| 托克逊县| 葫芦岛市| 永康市| 鄂尔多斯市| 怀宁县| 衡南县| 社旗县| 阿荣旗| 舒城县| 剑阁县| 探索| 门源| 朝阳县| 渝中区| 齐河县| 呼伦贝尔市| 全椒县| 丰城市| 萝北县| 肥乡县| 牡丹江市| 饶河县| 黑河市| 乐昌市| 沙坪坝区| 宜兴市| 来安县| 旬阳县|