• KTRPOLY-NORM38軸套TB錐套 的簡單介紹

    本文目錄一覽:

    用C語言設計一個簡單計算器

    #includestdio.h?

    void?add(int?a,int?b,int?c)?

    {?

    ?c=a+b;?

    ?printf("%d\t",c);?

    ?printf("\n");?

    }?

    void?minus(int?a,int?b,int?c)?

    {?

    ?c=a-b;?

    ?printf("%d\t",c);?

    ?printf("\n");?

    }?

    void?multiplication(int?a,int?b,int?c)?

    {?

    ?c=a*b;?

    ?printf("%d\t",c);?

    ?printf("\n");?

    }?

    void?div(int?a,int?b,int?c)?

    {?

    ?c=(float)a/(float)b;?

    ?printf("%f\t",c);?

    ?printf("\n");?

    }?

    main()?

    {?

    ?int?a,b,c;?

    ?char?p;?

    ?puts("input?A:\n");?

    ?scanf("%d",a);?

    ?puts("input?B:\n");?

    ?scanf("%d",b);?

    ?puts("input?operation:\n");?

    ?getchar();?

    ?p=getchar();?

    ?if(p=='+')?add(a,b,c);else?

    ??if(p=='-')?minus(a,b,c);else?

    ???if(p=='*')?multiplication(a,b,c);else?

    ????if(p=='/')?div(a,b,c);else?

    ?????puts("沒有注冊這個運算符號\n");?

    }

    以上是設計的一個簡易計算器。可以進行相應的加減乘除。

    簡介:

    C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適于編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。

    MMsegmentation教程 6: 自定義運行設定

    我們已經支持 PyTorch 自帶的所有優化器,唯一需要修改的地方是在配置文件里的 optimizer 域里面。

    例如,如果您想使用 ADAM (注意如下操作可能會讓模型表現下降),可以使用如下修改:

    為了修改模型的學習率,使用者僅需要修改配置文件里 optimizer 的 lr 即可。

    使用者可以參照 PyTorch 的 API 文檔

    直接設置參數。

    一個自定義的優化器可以按照如下去定義:

    假如您想增加一個叫做 MyOptimizer 的優化器,它的參數分別有 a , b , 和 c 。

    您需要創建一個叫 mmseg/core/optimizer 的新文件夾。

    然后再在文件,即 mmseg/core/optimizer/my_optimizer.py 里面去實現這個新優化器:

    為了讓上述定義的模塊被框架發現,首先這個模塊應該被導入到主命名空間 (main namespace) 里。

    有兩種方式可以實現它。

    mmseg.core.optimizer.my_optimizer 模塊將會在程序運行的開始被導入,并且 MyOptimizer 類將會自動注冊。

    需要注意只有包含 MyOptimizer 類的包 (package) 應當被導入。

    而 mmseg.core.optimizer.my_optimizer.MyOptimizer 不能 被直接導入。

    事實上,使用者完全可以用另一個按這樣導入方法的文件夾結構,只要模塊的根路徑已經被添加到 PYTHONPATH 里面。

    之后您可以在配置文件的 optimizer 域里面使用 MyOptimizer

    在配置文件里,優化器被定義在 optimizer 域里,如下所示:

    為了使用您自己的優化器,這個域可以被改成:

    有些模型可能需要在優化器里有一些特別參數的設置,例如 批歸一化層 (BatchNorm layers) 的 權重衰減 (weight decay)。

    使用者可以通過自定義優化器的構造器去微調這些細粒度參數。

    默認的優化器構造器的實現可以參照 這里 ,它也可以被用作新的優化器構造器的模板。

    優化器沒有實現的一些技巧應該通過優化器構造器 (optimizer constructor) 或者鉤子 (hook) 去實現,如設置基于參數的學習率 (parameter-wise learning rates)。我們列出一些常見的設置,它們可以穩定或加速模型的訓練。

    如果您有更多的設置,歡迎在 PR 和 issue 里面提交。

    我們根據默認的訓練迭代步數 40k/80k 來設置學習率,這在 MMCV 里叫做 PolyLrUpdaterHook 。

    我們也支持許多其他的學習率計劃表: 這里 ,例如 CosineAnnealing 和 Poly 計劃表。下面是一些例子:

    工作流是一個專門定義運行順序和輪數 (running order and epochs) 的列表 (phase, epochs)。

    默認情況下它設置成:

    意思是訓練是跑 1 個 epoch。有時候使用者可能想檢查模型在驗證集上的一些指標(如 損失 loss,精確性 accuracy),我們可以這樣設置工作流:

    于是 1 個 epoch 訓練,1 個 epoch 驗證將交替運行。

    注意 :

    如果鉤子已經在 MMCV 里被實現,如下所示,您可以直接修改配置文件來使用鉤子:

    以下的常用的鉤子沒有被 custom_hooks 注冊:

    在這些鉤子里,只有 logger hook 有 VERY_LOW 優先級,其他的優先級都是 NORMAL 。

    上述提及的教程已經包括了如何修改 optimizer_config , momentum_config 和 lr_config 。

    這里我們展示我們如何處理 log_config , checkpoint_config 和 evaluation 。

    MMCV runner 將使用 checkpoint_config 去初始化 CheckpointHook .

    使用者可以設置 max_keep_ckpts 來僅保存一小部分檢查點或者通過 save_optimizer 來決定是否保存優化器的狀態字典 (state dict of optimizer)。 更多使用參數的細節請參考 這里 。

    log_config 包裹了許多日志鉤 (logger hooks) 而且能去設置間隔 (intervals)。現在 MMCV 支持 WandbLoggerHook , MlflowLoggerHook 和 TensorboardLoggerHook 。

    詳細的使用請參照 文檔 。

    evaluation 的配置文件將被用來初始化 EvalHook 。

    除了 interval 鍵,其他的像 metric 這樣的參數將被傳遞給 dataset.evaluate() 。

    錐套的介紹

    錐套是一種歐美國家普遍使用的新型機械傳動聯接部件,具有標準化程度高、精度高、結構緊湊、安裝拆卸方便等特點。通過8度外錐面與皮帶輪、鏈輪及其他傳動件內錐面壓緊聯接,使各種傳動件的定心精度大大提高。錐套尺寸為系列標準設計。其內孔鍵槽按ISO標準加工。通用性互換性很好,適用各種場合. 當傳動件經過長時間運轉時,內孔及鏈槽就可能發生損壞,如果是使用這種錐套的傳動件,發生這種情況時,只需更換同一規格錐套就可以恢復使用。因而大大提高傳動件使用壽命,降低維修費用,節省時間。

    Matlab調用IE并根據錄入內容然后搜索

    function RandDisplayJiong

    axis off; %隱去坐標軸

    set(gcf,'menubar','none','toolbar','none');%不顯示當前figure 菜單欄和工具欄

    for k = 1:100 %循環100次

    %每次在(rand,rand)這個隨機的位置,以20到50之間隨機分布的一個數為字體大小,隸書的形式,

    %隨機生成RGB顏色,并隨機旋轉一定角度來顯示“囧”

    h = text(rand,rand,...

    ['\fontsize{',num2str(unifrnd(20,50)),'}\fontname {隸書} 囧'],...

    'color',rand(1,3),'Rotation',360*rand);

    pause(0.2); %每顯示完一次暫停0.2秒

    end

    function T = cat_in_holl(n)

    T = zeros(1,n);

    for k = 1:n

    c = unidrnd(3,1);

    while c ~= 1

    if c == 2

    T(k) = T(k)+4;

    else

    T(k) = T(k)+6;

    end

    c = unidrnd(3,1);

    end

    T(k) = T(k)+2;

    end

    function example2_3_6slow

    A = unidrnd(100,1000000,7);%隨機生成1000000*7的A矩陣,A的元素屬于1到100的整數

    B = zeros(1000000,3);

    for m = 1:1000000

    a = A(m,:);

    b = [4 6 8];

    for ii = 1:3

    dd = a(a==b(ii));%dd:a中等于b(ii)的元素

    if isempty(dd)==0 %dd不為空

    b(ii)=0;

    end

    end

    B(m,:)=b;

    end

    function [m,n,TT]=plot3dnmT(N,L)

    %N:inf的近似,L:[0,2]區間的剖分個數

    C=zeros(N,1);%nested-function:Tmn=calcT(mm,nn)中用來存儲計算結果

    m=linspace(0,2,L);

    [m,n]=meshgrid(m,m);

    TT=zeros(size(n));%和網格數據m,n對應的計算出來的T(m,n)網格數據

    for ii=1:L

    for jj=1:L

    TT(ii,jj)=calcT(m(ii,jj),n(ii,jj));

    end

    end

    %=====計算T(m,n)的nest-function

    function Tmn=calcT(mm,nn)

    for N1=1:N

    C(N1)=(mm^N1/gamma(N1+1))*sum( nn.^(0:N1-1)./gamma(1:N1) );

    Tmn=1.0-exp(-mm-nn)*sum(C);

    end

    end

    mesh(n,m,TT);

    end

    function [mx,minf]=randwalk(f,x,lamda,epsilon,N)

    %隨機行走法求函數的極小值。輸入f為所求函數的句柄,

    %x為初始值。lamda為步長。epsilon為控制lamda的減小的閾值,即lamda減小到epsilon時

    %迭代停止。

    %N為為了產生較好點的迭代控制次數。

    %函數返回值mx為n次試驗得到的最優解,minf為響應的最優值。

    f1 = f(x(1),x(2));

    while(lamda=epsilon)

    k = 1;

    while(k=N)

    u = unifrnd(-1,1,1,2);

    x1 = x+lamda*(u/norm(u));

    f11 = f(x1(1),x1(2));

    if f11f1

    f1 = f11;

    x = x1;

    k = 1;

    else

    k = k+1;

    end

    end

    lamda = lamda/2;

    end

    mx = x1;

    minf = f1;

    function triangle_table

    fig = figure('defaultuicontrolunits','normalized','name','triangle_table',...

    'numbertitle','off','menubar','none');

    ah = axes('Pos',[.1 .2 .75 .75],'Visible','off');

    slider_h = uicontrol('style','slider','units','normalized','pos',...

    [0.1,0.05,0.75,0.05],'sliderstep',[1/6,0.05],'callback',@change_color);

    hold on

    for k = 0:6

    plot(0:6-k,(6-k)*ones(1,(7-k)),'k');

    plot(k*ones(1,(7-k)),k:6,'k');

    end

    plot([0,6],[0,6],'k');

    hold off;

    for x = 1:5

    for y = 1:x

    text(y-0.5,x+0.5,num2str(x),'color','k','tag','數字');

    end

    end

    for k = 0:5

    text(k+0.1,k+0.5,[num2str(k),'.5'],'tag','數字');

    end

    %====slider's callback function(nested function)======

    function change_color(hObject,eventdata)

    v = round(6*get(slider_h,'value'));

    num_h = findobj('tag','數字');

    num_pos = get(num_h,'pos');

    red_num_logic = cellfun(@(x) (x(1)=vx(2)=v),num_pos);

    set(num_h(red_num_logic),'color','r');

    set(num_h(~red_num_logic),'color','k');

    end

    end

    function DuckLakeSegmentation

    %導入圖像文件引導對話框

    [filename,pathname,flag] = uigetfile('*.jpg','請導入圖像文件');

    Duck = imread([pathname,filename]);

    LakeTrainData = [52 74 87;76 117 150;19 48 62;35 64 82;46 58 36;...

    50 57 23;110 127 135;156 173 189;246 242 232;...

    166 174 151];%從圖上選取的幾個位于湖面區域的有代表的點的RGB值

    %從圖上選取的幾個位于鴨子區域的有代表的點的RGB值

    DuckTrainData = [211 192 107;202 193 164;32 25 0;213 201 151;115 75 16;...

    101 70 0;169 131 22;150 133 87];

    %屬于湖的點為0,鴨子為1

    group = [zeros(size(LakeTrainData,1),1);ones(size(DuckTrainData,1),1)];

    LakeDuckSVM = svmtrain([LakeTrainData;DuckTrainData],group,...

    'Kernel_Function','polynomial','Polyorder',2);%訓練得到支持向量分類機

    [m,n,k] = size(Duck);

    Duck1 = double(reshape(Duck, m*n, k));%將數組Duck轉成m*n行,3列的雙精度矩陣

    %根據訓練得到的支持向量機對整個圖像的像素點分類

    IndDuck = svmclassify(LakeDuckSVM,Duck1);

    IndLake = ~IndDuck;%屬于湖的點的邏輯數組

    result = reshape([IndLake, IndLake, IndLake],[m,n,k]);%和圖片的維數相對應

    Duck2 = Duck;

    Duck2(result) = 0;

    figure

    imshow(Duck2)

    function example12_1_3

    %定時器的TimerFun,供TimerA,TimerB,TimerC共用

    function TimerFun(object,event)

    t = clock; %函數剛開始執行時間點

    pause(1);%函數執行了1秒鐘

    et = etime(t,get(object,'userdata'));%函數開始運行和上次函數開始運行時間間隔

    disp(['本次函數開始執行距上次函數開始執行時間為:',num2str(et),' S!'])

    set(object,'userdata',t);%記錄本次函數開始運行時間

    end

    %定義定時器TimerA, 'executionmode'設為'fixedSpacing'

    TimerA = timer('StartFcn','disp(''定時器A開始:'')','ErrorFcn',...

    'disp(''A發生錯誤'')','StartDelay',0.5,'TimerFcn',@TimerFun,'stopfcn',...

    'disp(''定時器A停止!'')','executionmode','fixedSpacing','period',0.5,...

    'TasksToExecute',3);

    %定義定時器TimerB, 'executionmode'設為'fixedDelay'

    TimerB = timer('StartFcn','disp(''定時器B開始:'')','ErrorFcn',...

    'disp(''B發生錯誤'')','StartDelay',0.5,'TimerFcn',@TimerFun,'stopfcn',...

    'disp(''定時器B停止!'')','executionmode','fixedDelay','period',0.5,...

    'TasksToExecute',3);

    %定義定時器TimerC, 'executionmode'設為'fixedRate'

    TimerC = timer('StartFcn','disp(''定時器C開始:'')','ErrorFcn',...

    'disp(''C發生錯誤'')','StartDelay',0.5,'TimerFcn',@TimerFun,'stopfcn',...

    'disp(''定時器C停止!'')','executionmode','fixedRate','period',0.5,...

    'TasksToExecute',3);

    %運行定時器A

    set(TimerA,'userdata',clock);

    start(TimerA);

    wait(TimerA);

    %運行定時器B

    set(TimerB,'userdata',clock);

    start(TimerB);

    wait(TimerB);

    %運行定時器C

    set(TimerC,'userdata',clock);

    start(TimerC);

    wait(TimerC);

    end

    KTR聯軸器生產高品質傳動部件和制動器

    服務熱線

    13166059228

    13166059228

    微信客服

    微信客服

  • 妈妈的朋友电影