tensorflow.nn
모듈은 많은 기본 신경망 작업을 지원합니다.
많은 활성화 함수 중 하나는 시그모이드 함수입니다. 로 정의됩니다.
Sigmoid 함수는 (0, 1) 범위에서 출력하므로 데이터가 특정 클래스에 속할 확률을 찾아야 하는 이진 분류 작업. 시그모이드 함수는 모든 지점에서 미분 가능하며 그 파생물은 다음과 같습니다. 역전파 속도를 높이기 위해.
시그모이드 함수는 양쪽 끝에서 평평해지기 때문에 "배니싱 그라디언트" 문제가 발생하여 다시 전파될 때 무게 변화가 매우 적습니다. 이로 인해 신경망이 학습을 거부하고 막힐 수 있습니다. 이러한 이유로 Sigmoid 함수의 사용은 ReLU(Rectified Linear Unit)와 같은 다른 비선형 함수로 대체됩니다.
tf.nn.sigmoid ()
[alias tf.sigmoid
]는 Tensorflow에서 sigmoid 함수 지원을 제공합니다.
구문 : tf.nn.sigmoid (x, name = None ) 또는 tf.sigmoid(x, 이름 = 없음)
매개변수 :
x : 다음 유형의 텐서: float16 , float32, float64, complex64 또는 complex128.
이름 (선택 사항): 작업의 이름입니다.반환 유형 : 텐서 x와 같은 유형입니다.
코드 # 1:
# Tensorflow 라이브러리 가져오기
가져오기
텐서플로를 tf로
# 크기가 6인 상수 벡터
<코드 클래스 ="일반 "> a <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> tf.constant ([ <코드 클래스 = "값" > 1.0 <코드 클래스 = "일반">, <코드 클래스 = "키워드"> - <코드 클래스 = "값"> 0.5 <코드 클래스 = " 일반">, <코드 클래스 = "값 "> 3.4 <코드 클래스 ="일반 ">, <코드 클래스 ="키워드 "> - <코드 클래스 ="값 "> 2.1 <코드 클래스 = "일반">, <코드 클래스 = "값"> 0.0 <코드 클래스 = "일반">, < 코드 클래스 = "키워드"> - <코드 클래스 = "값"> 6.5 <코드 클래스 = "일반">], dtype <코드 클래스 = "키워드"> = tf.float32 )
# 시그모이드 함수와
사용 # 결과를 '에 저장 ㄴ '
<코드 클래스 = "일반"> b <코드 클래스 = "키워드 "> = <코드 클래스 ="일반 "> tf.nn.s igmoid (a, 이름 =
`sigmoid`
)
# Tensorflow 세션 시작
tf.Session()을 세션으로 사용:
인쇄
(
`입력 유형:`
, a)
인쇄
< 코드 클래스 = "일반"> ( <코드 클래스 = "문자열"> `입력: ` <코드 클래스 ="일반 ">, sess.run(a))
인쇄
(
` 반환 유형: `
, b)
인쇄 <코드 클래스 = "일반"> (
<코드 클래스 = "문자열"> `출력:` <코드 클래스 = "일반">, sess.run(b))
출력:
입력 유형: Tensor("Const_1: 0", 모양 = ( 6,), dtype = float32) 입력: [1. -0.5 3.4000001 - 2.0999999 0. -6.5] 반환 유형: 텐서("sigmoid: 0", 모양 = (6,), dtype = float32) 출력: [0.7310586 0.37754068 0.967704코드 # 2: 렌더링
# Tensorflow 라이브러리 가져오기
가져오기
텐서플로를 tf로
# NumPy 라이브러리 가져오기
가져오기
numpy as np
# matplotlib.pylot 함수 가져오기
가져오기
matplotlib.pyplot as plt
# 값이 -5에서 5인 벡터 크기 15
a
= < /코드> <코드 클라 ss = "일반"> np.linspace (
<코드 클래스 = "키워드"> - <코드 클래스 = "값"> 5 <코드 클래스 = "일반">, < /코드> <코드 클래스 = "값"> 5 <코드 클래스 = "일반">, <코드 클래스 = "값"> 15 <코드 클래스 = "일반"> )
# sigmoid 함수를 적용하고
# 결과를 &에 저장 #39; ㄴ '
<코드 클래스 = "일반"> b <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> tf.nn.sigmoid (a, 이름
=
`sigmoid`
)
# Tensorflow 세션에서 시작
세션으로 tf.Session() 사용:
(
`입력:`
, a)
인쇄
(
`출력:`
, 세션 .run (b))
plt.plot (a, sess.run (b), 색상
=
`빨간색`
, 마커
=
"o"
)
plt. 제목(
"tensorflow.nn.sigmoid"
)
plt.xlabel (
"X"
) < /코드>
<코드 클래스 = "일반"> plt.ylabel( <코드 클래스 = "문자열"> "Y" <코드 클래스 = "일반">)
plt.show ()
출력:
입력: 입력: [-five. -4.28571429 -3.57142857 -2.85714286 -2.14285714 -1.42857143 -0.71428571 0 0.71428571 1.42857143 2.14285714 2.85714286 3.57142857 4.28571429 5] 출력 : 0.00669285 0.01357692 0.02734679 0.05431327 0.10500059 0.19332137 0.32865255 0.5 0.67134745 0.80667863 0.89499941 0.94568673 0.97265321 0.98642308 0.99330715]< 그림 클래스 = aligncenter amp-wp-inline-e407ac51e00eb7ad9e758d070160c9d8>
![]()