網站首頁 編程語言 正文
assert斷言聲明,遇到錯誤則立即返回
在使用python語言開發深度學習模型時,經常會遇到模型運行結束時才會發現的崩潰狀態,或者得到的結果不是預想的那樣。
這就需要在模型中善于使用assert語句,來判斷某些變量的類型或者shape等是否滿足要求。
用法為 :
assert expression(你想判斷的內容)
# 等價于
if not expression:
? ? raise AssertionError
例如:
在邏輯回歸中,z = W的轉置*X,樣本X含有五個特征,則我們在設置W時。要一直保證其shape為[5,1]
>>> import numpy as np
>>> w = np.zeros((5,1))
>>> w
array([[0.],
? ? ? ?[0.],
? ? ? ?[0.],
? ? ? ?[0.],
? ? ? ?[0.]])
>>> assert(w.shape == (5,1))
>>> assert(w.shape == (2,1))
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
AssertionError
assert斷言函數
說明一下代碼適用于python2,不完全適用與py3
使用assert斷言是學習python一個非常好的習慣,python assert 斷言句語格式及用法很簡單。在沒完善一個程序之前,我們不知道程序在哪里會出錯,與其讓它在運行最崩潰,不如在出現錯誤條件時就崩潰,這時候就需要assert斷言的幫助。本文主要是講assert斷言的基礎知識。
python assert斷言的作用
python assert斷言是聲明其布爾值必須為真的判定,如果發生異常就說明表達示為假。可以理解assert斷言語句為raise-if-not,用來測試表示式,其返回值為假,就會觸發異常。
assert斷言語句的語法格式
- assert python 怎么用?
- expression assert 表達式
assert語句用來聲明某個條件是真的。
如果你非常確信某個你使用的列表中至少有一個元素,而你想要檢驗這一點,并且在它非真的時候引發一個錯誤,那么assert語句是應用在這種情形下的理想語句。
當assert語句失敗的時候,會引發一AssertionError。
下面做一些assert用法的語句供參考
>>assert 1==1
>> assert 1 == 2
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
AssertionError
>>assert 2+2==2*2
>>assert len(['my boy',12])<10
>>assert range(4)==[0,1,2,3]
>>> mylist = ['item']
>>assert len(mylist) >= 1
>>mylist.pop()
'item'
>>assert len(mylist) >= 1
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
AssertionError
如何為assert斷言語句添加異常參數
assert的異常參數,其實就是在斷言表達式后添加字符串信息,用來解釋斷言并更好的知道是哪里出了問題。
格式如下:
assert expression [, arguments]
assert 表達式 [, 參數]
自定異常
class ShortInputException(Exception):
'''自定義的異常類'''
def __init__(self, length, atleast):
#super().__init__()
self.length = length
self.atleast = atleast
def main():
try:
s = input('請輸入 --> ')
if len(s) < 3:
# raise引發一個你定義的異常
raise ShortInputException(len(s), 3)
except ShortInputException as result:#x這個變量被綁定到了錯誤的實例
print('ShortInputException: 輸入的長度是 %d,長度至少應是 %d'% (result.length, result.atleast))
else:
print('沒有異常發生.')
main()
原文鏈接:https://blog.csdn.net/weixin_40546602/article/details/89407713
相關推薦
- 2022-04-01 關于使用pyqt彈出消息提示框的問題_python
- 2022-07-26 Visual Studio上一些Error的解決方案
- 2022-11-14 flutter中使用流式布局示例詳解_Android
- 2022-12-21 kubernetes?k8s?存儲動態掛載配置詳解_云其它
- 2022-07-09 Python如何通過變量ID得到變量的值_python
- 2024-03-24 MyBatis-Plus:條件構造器Wrapper
- 2022-03-10 搭建Redis服務器步驟詳細介紹_Redis
- 2022-06-25 Python實現漸變色的水平堆疊圖_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支