前提・実現したいこと
C言語のプログラムをPythonに書きかえている最中です。Pythonのことを学ぶことが初めてで、よく分かりません。
簡単な計算の機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
TypeError Traceback (most recent call last)
<ipython-input-7-7441bff9d6e3> in <module>()
38 X=Xinit
39 #RNNの計算
---> 40 Y=W*sigma(X)+B
41
42 print(Y)
<ipython-input-7-7441bff9d6e3> in sigma(X)
14 #sigma関数の定義
15 def sigma(X):
---> 16 return 1.0/(1.0+math.exp(-X))
17 def dsigma(X):
18 return sigma(X)*(1.0-sigma(X))
TypeError: bad operand type for unary -: 'list'
該当のソースコード
Python3
import cv2
import numpy as np
import os
import glob
import sys
from PIL import Image
from matplotlib import pylab as plt
from google.colab.patches import cv2_imshow#サポートパッチのインポート
import math
import random
import time
import pickle
def sigma(X):
return 1.0/(1.0+math.exp(-X))
def dsigma(X):
return sigma(X)*(1.0-sigma(X))
print(sigma(1))
print(dsigma(1))
N=24
NN=N*N
NO=NN #出力ニューロン数
NH=NN #隠れニューロン数
NA=NO+NH #全ニューロン数
W=0.1*(np.random.rand(NA,NA)-0.5) #Wの初期化
B=0.1*(np.random.rand(NA,1)-0.5) #Bの初期化
XH0=0.1*(np.random.rand(NH,1)-0.5)
XO0=0.1*(np.random.rand(NO,1)-0.5) #学習用入力
Xinit=[[[XO0],[XH0]]]#列ベクトル
X=Xinit
Y=W*sigma(X)+B
試したこと
エラーをそのまま検索してみましたが
bad operand type for unary -: 'str'に関することがほとんどで、理解することができませんでした。
回答1件
あなたの回答
tips
プレビュー