<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.5">Jekyll</generator><link href="https://mustafaarikan.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://mustafaarikan.github.io/" rel="alternate" type="text/html" /><updated>2024-07-25T10:23:38+00:00</updated><id>https://mustafaarikan.github.io/feed.xml</id><title type="html">no title yet</title><subtitle>This is a blog I started to keep track...</subtitle><entry><title type="html">Reload nvidia-smi after Failed to initialize NVML: Driver/library version mismatch without restart</title><link href="https://mustafaarikan.github.io/2024/04/09/nvidia-smi.html" rel="alternate" type="text/html" title="Reload nvidia-smi after Failed to initialize NVML: Driver/library version mismatch without restart" /><published>2024-04-09T00:00:00+00:00</published><updated>2024-04-09T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2024/04/09/nvidia-smi</id><content type="html" xml:base="https://mustafaarikan.github.io/2024/04/09/nvidia-smi.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#check-running-process" id="markdown-toc-check-running-process">Check running process</a></li>
  <li><a href="#unload" id="markdown-toc-unload">Unload</a></li>
  <li><a href="#load-again" id="markdown-toc-load-again">Load again</a></li>
</ol>

<h2 id="check-running-process">Check running process</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo lsof /dev/nvidia*
kill &lt;pid&gt;
</code></pre></div></div>

<h2 id="unload">Unload</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia

</code></pre></div></div>

<h2 id="load-again">Load again</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nvidia-smi
</code></pre></div></div>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Network windows/linux stuff</title><link href="https://mustafaarikan.github.io/2022/12/21/network.html" rel="alternate" type="text/html" title="Network windows/linux stuff" /><published>2022-12-21T00:00:00+00:00</published><updated>2022-12-21T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/12/21/network</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/12/21/network.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#mount-a-smb-share-on-windows" id="markdown-toc-mount-a-smb-share-on-windows">Mount a smb share on Windows</a></li>
  <li><a href="#get-public-ip-using-cli" id="markdown-toc-get-public-ip-using-cli">Get public ip using cli</a></li>
  <li><a href="#create-a-linux-uuser-and-changing-default-shell-of-a-suer" id="markdown-toc-create-a-linux-uuser-and-changing-default-shell-of-a-suer">Create a linux uuser and changing default shell of a suer</a></li>
  <li><a href="#setup-a-smb-share" id="markdown-toc-setup-a-smb-share">Setup a smb share</a></li>
</ol>

<h2 id="mount-a-smb-share-on-windows">Mount a smb share on Windows</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>net use Z: \\100.100.10.10\share /USER:WORKGROUP\username pwd123 /PERSISTENT:YES
</code></pre></div></div>

<h2 id="get-public-ip-using-cli">Get public ip using cli</h2>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dig +short myip.opendns.com @resolver1.opendns.com
</code></pre></div></div>

<h2 id="create-a-linux-uuser-and-changing-default-shell-of-a-suer">Create a linux uuser and changing default shell of a suer</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo useradd -m username
passwd username
su username
chsh -s /usr/bin/bash
</code></pre></div></div>

<h2 id="setup-a-smb-share">Setup a smb share</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo apt install samba
sudo ufw allow samba
sudo usermod -aG sambashare username
# Edit /etc/samba/smb.conf
sudo smbpasswd -a username
[share]
    path = /opt/sharedfolder
    read only = no
    browseable = yes
    force create mode = 0660
    force directory mode = 2770
    valid users = @username

# Also add ntlm auth=true to smb.conf [global]
</code></pre></div></div>

<p><a href="https://www.how2shout.com/linux/how-to-install-samba-on-ubuntu-22-04-lts-jammy-linux/">See!</a>
<a href="https://askubuntu.com/questions/1133578/windows-10-not-connecting-properly-with-samba-4-7-6-on-ubuntu-18-04">See!</a>
<a href="https://www.cyberciti.biz/faq/how-to-find-my-public-ip-address-from-command-line-on-a-linux/">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Snippet for clustering example</title><link href="https://mustafaarikan.github.io/2022/09/03/clustering-example.html" rel="alternate" type="text/html" title="Snippet for clustering example" /><published>2022-09-03T00:00:00+00:00</published><updated>2022-09-03T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/09/03/clustering-example</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/09/03/clustering-example.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#introduction-cities-with-coordinates" id="markdown-toc-introduction-cities-with-coordinates">Introduction (cities with coordinates)</a></li>
  <li><a href="#calculate-distance-or-affinity-matrix" id="markdown-toc-calculate-distance-or-affinity-matrix">Calculate distance or affinity matrix</a></li>
  <li><a href="#visualize-matrix-and-show-distance-between-two-cities-as-example" id="markdown-toc-visualize-matrix-and-show-distance-between-two-cities-as-example">Visualize matrix and show distance between two cities as example</a></li>
  <li><a href="#spectral-clustering" id="markdown-toc-spectral-clustering">Spectral Clustering</a></li>
  <li><a href="#find-ideal-number-of-clusters" id="markdown-toc-find-ideal-number-of-clusters">Find ideal number of clusters</a></li>
</ol>

<h2 id="introduction-cities-with-coordinates">Introduction (cities with coordinates)</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#Cities_Cluster.ipynb
from geopy.geocoders import Nominatim
import time
import numpy as np
from pprint import pprint
app = Nominatim(user_agent="tutorial")

# Define 6 groups of cities, which are roughly connected

cities = ["Nairobi, Kenya", "Mombasa, Kenya", "Nakuru, Kenya", "Ruiru, Kenya", "Eldoret, Kenya", "Kisumu, Kenya",
          "New York, United States", "Los Angeles, United States","Chicago, United States","Chicago, United States","Houston, United States","Phoenix, United States","San Antonio, United States",
          "Kiel, Germany", "Hamburg, Germany", "Berlin, Germany", "Cologne, Germany", "Mainz, Germany", "Freiburg, Germany", "Konstanz, Germany",
          "Yokohama, Japan","Kobe, Japan","Incheon, South Korea","Shanghai, China",
          "Buenos Aires, Argentina","Rosario, Argentina","La Plata, Argentina","Salta, Argentina",
         "Sydney, Australia","Melbourne, Australia","Brisbane, Australia","Perth, Australia","Adelaide, Australia","Hobart, Australia","Darwin, Australia"]
         
#for 
x_ = [];
y_ = [];
citiesKM = [];
for i in range(0, len(cities)):
    location = app.geocode(cities[i]).raw
    #print (location['lat']);
    x_.append(location['lat'])
    y_.append(location['lon'])
    citiesKM.append((location['lat'], location['lon']))
</code></pre></div></div>

<h2 id="calculate-distance-or-affinity-matrix">Calculate distance or affinity matrix</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Import the geodesic module from geopy library 
from geopy.distance import geodesic as GD
 # For the specified locations, load their latitude and longitude data.
#Finally, print the distance between the two sites in kilometers.

matrix = np.zeros((len(cities), len(cities)), 'float32')

for i in range(0, len(cities)):
    for j in range(0, len(cities)):
        if(i == j):
            matrix[i,j] = 1.0;
        else:
            matrix[i,j] = -1.0*GD(citiesKM[i],citiesKM[j]).km
            
def NormalizeData(data):
    return (data - np.min(data)) / (np.max(data) - np.min(data))
    
matrix = NormalizeData(matrix)


</code></pre></div></div>

<h2 id="visualize-matrix-and-show-distance-between-two-cities-as-example">Visualize matrix and show distance between two cities as example</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from matplotlib import pylab as plt
plt.imshow(matrix,cmap="gray")



# Import the geodesic module from geopy library 
from geopy.distance import geodesic as GD
 # For the specified locations, load their latitude and longitude data.
#Finally, print the distance between the two sites in kilometers.
print("The distance between Abuja and Dakar is: ", GD(citiesKM[0],citiesKM[-1]).km)

#The distance between Abuja and Dakar is:  10423.219350045409

</code></pre></div></div>

<p><img src="/images/Cities_Matrix.png" alt="Cities" /></p>

<h2 id="spectral-clustering">Spectral Clustering</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import scipy
from sklearn.cluster import SpectralClustering
import pandas as pd

#%%time

best_k = None
stds = {} # a map of std for each k
max_clusters = 16 # max number of clusters or target classes we are okay with 

#with warnings.catch_warnings():
#    warnings.simplefilter("ignore")
    
for clusters in range(2, max_clusters):
    #print (clusters)
    sc = SpectralClustering(clusters, assign_labels='cluster_qr', random_state=1, affinity='precomputed')
    sc.fit_predict(matrix)

    std = pd.DataFrame(sc.labels_, columns=["cluster_id"]).cluster_id.value_counts().describe().loc["std"]
    stds[clusters] = std

</code></pre></div></div>

<h2 id="find-ideal-number-of-clusters">Find ideal number of clusters</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('darkgrid', {'axes.facecolor': '.9'})
sns.set_palette(palette='deep')
sns_c = sns.color_palette(palette='deep')
%matplotlib inline

plt.figure(figsize=(20,20))
ax = sns.barplot(x="k", y="std", data=pd.DataFrame( stds.items(), columns=["k", "std"] ))
plt.xlabel("number of clusters")
plt.ylabel("class imbalance metric (std)")
ax.grid()



</code></pre></div></div>

<p><img src="/images/Clusters_Imbalance.png" alt="Cities" /></p>

<p><a href="https://www.section.io/engineering-education/using-geopy-to-calculate-the-distance-between-two-points/">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Matplotlib snippets</title><link href="https://mustafaarikan.github.io/2022/09/03/matplotlib.html" rel="alternate" type="text/html" title="Matplotlib snippets" /><published>2022-09-03T00:00:00+00:00</published><updated>2022-09-03T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/09/03/matplotlib</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/09/03/matplotlib.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#add-patches-eg-circles-into-a-plot" id="markdown-toc-add-patches-eg-circles-into-a-plot">Add patches (e.g. circles into a plot)</a></li>
</ol>

<h2 id="add-patches-eg-circles-into-a-plot">Add patches (e.g. circles into a plot)</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)
circ = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)
pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]],
color='g', alpha=0.5)

ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)
</code></pre></div></div>

<p><a href="https://discuss.analyticsvidhya.com/t/how-to-add-a-patch-in-a-plot-in-python/5518">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Snippet for normalizing numpy array</title><link href="https://mustafaarikan.github.io/2022/09/03/normalize-data.html" rel="alternate" type="text/html" title="Snippet for normalizing numpy array" /><published>2022-09-03T00:00:00+00:00</published><updated>2022-09-03T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/09/03/normalize-data</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/09/03/normalize-data.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#generate-data" id="markdown-toc-generate-data">Generate data</a></li>
  <li><a href="#using-numpy" id="markdown-toc-using-numpy">Using numpy</a></li>
</ol>

<h2 id="generate-data">Generate data</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import numpy as np

randomValues = np.random.uniform(low=1000.0, high=10000.0, size=(300,))
</code></pre></div></div>

<h2 id="using-numpy">Using numpy</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import numpy as np

def NormalizeData(data, maxVal = 255.0):
    return ((data - np.min(data)) / (np.max(data) - np.min(data)))*maxVal

scaled_x = NormalizeData(randomValues)

scaled_x = np.round(NormalizeData(randomValues)).astype('uint8')

print(np.max(scaled_x), np.min(scaled_x))
</code></pre></div></div>

<p><a href="https://www.stackvidhya.com/how-to-normalize-data-between-0-and-1-range/">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Three interesting algorithms (otsu, connected component and measure)</title><link href="https://mustafaarikan.github.io/2022/09/03/otsu-connected-component-measure.html" rel="alternate" type="text/html" title="Three interesting algorithms (otsu, connected component and measure)" /><published>2022-09-03T00:00:00+00:00</published><updated>2022-09-03T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/09/03/otsu-connected-component-measure</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/09/03/otsu-connected-component-measure.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#otsu" id="markdown-toc-otsu">Otsu</a></li>
  <li><a href="#connected-component" id="markdown-toc-connected-component">Connected component</a></li>
  <li><a href="#measure-on-label-image" id="markdown-toc-measure-on-label-image">Measure (on label image)</a></li>
</ol>

<h2 id="otsu">Otsu</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import matplotlib.pyplot as plt
from skimage import data
from skimage import filters
from skimage import exposure

camera = data.camera()
val = filters.threshold_otsu(camera)

hist, bins_center = exposure.histogram(camera)

plt.figure(figsize=(9, 4))
plt.subplot(131)
plt.imshow(camera, cmap='gray', interpolation='nearest')
plt.axis('off')
plt.subplot(132)
plt.imshow(camera &lt; val, cmap='gray', interpolation='nearest')
plt.axis('off')
plt.subplot(133)
plt.plot(bins_center, hist, lw=2)
plt.axvline(val, color='k', ls='--')

plt.tight_layout()
plt.show()

</code></pre></div></div>

<p><a href="https://scipy-lectures.org/packages/scikit-image/auto_examples/plot_threshold.html">See!</a></p>

<h2 id="connected-component">Connected component</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from skimage import measure
from skimage import filters
import matplotlib.pyplot as plt
import numpy as np

n = 12
l = 256
np.random.seed(1)
im = np.zeros((l, l))
points = l * np.random.random((2, n ** 2))
im[(points[0]).astype(np.int), (points[1]).astype(np.int)] = 1
im = filters.gaussian(im, sigma= l / (4. * n))
blobs = im &gt; 0.7 * im.mean()

all_labels = measure.label(blobs)
blobs_labels = measure.label(blobs, background=0)

plt.figure(figsize=(9, 3.5))
plt.subplot(131)
plt.imshow(blobs, cmap='gray')
plt.axis('off')
plt.subplot(132)
plt.imshow(all_labels, cmap='nipy_spectral')
plt.axis('off')
plt.subplot(133)
plt.imshow(blobs_labels, cmap='nipy_spectral')
plt.axis('off')

plt.tight_layout()
plt.show()
</code></pre></div></div>

<p><a href="https://scipy-lectures.org/packages/scikit-image/auto_examples/plot_labels.html">See!</a></p>

<h2 id="measure-on-label-image">Measure (on label image)</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>for j in range(0, 10, 1):
  labels = measure.label(all_labels==cnt[np.argsort(vls)[j]])

  props = measure.regionprops(labels, img)
  properties = ['area', 'eccentricity', 'perimeter', 'orientation'] #, 'moments_central', 'moments'] #, 'intensity_mean']

  oritn = getattr(props[0], 'orientation');
  print (oritn)
</code></pre></div></div>

<p><a href="https://vincmazet.github.io/bip/mm/measure.html">See!</a>
<a href="https://jni.github.io/i2k-skimage-napari/lectures/2_segmentation_and_regionprops.html">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Read and write to files</title><link href="https://mustafaarikan.github.io/2022/09/03/read-write-lines.html" rel="alternate" type="text/html" title="Read and write to files" /><published>2022-09-03T00:00:00+00:00</published><updated>2022-09-03T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/09/03/read-write-lines</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/09/03/read-write-lines.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#read-lines-from-a-file" id="markdown-toc-read-lines-from-a-file">Read lines from a file</a></li>
  <li><a href="#write-lines" id="markdown-toc-write-lines">Write lines</a></li>
</ol>

<h2 id="read-lines-from-a-file">Read lines from a file</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Using readlines()
file1 = open('myfile.txt', 'r')
Lines = file1.readlines()
</code></pre></div></div>

<h2 id="write-lines">Write lines</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>L = ["1\n", "2\n", "3\n"]
  
# writing to file
file1 = open('myfile.txt', 'w')
file1.writelines(L)
file1.close()
</code></pre></div></div>

<p><a href="https://www.geeksforgeeks.org/read-a-file-line-by-line-in-python/">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Some snippets for jupyter</title><link href="https://mustafaarikan.github.io/2022/04/20/shortcuts-for-jupyter.html" rel="alternate" type="text/html" title="Some snippets for jupyter" /><published>2022-04-20T00:00:00+00:00</published><updated>2022-04-20T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/04/20/shortcuts-for-jupyter</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/04/20/shortcuts-for-jupyter.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#view-variables" id="markdown-toc-view-variables">View variables</a></li>
  <li><a href="#rename-variables" id="markdown-toc-rename-variables">Rename variables</a></li>
  <li><a href="#show-running-jupyterlab-instances" id="markdown-toc-show-running-jupyterlab-instances">Show running jupyterlab instances</a></li>
</ol>

<h2 id="view-variables">View variables</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dir() #or

import sys, pprint
sys.displayhook = pprint.pprint
locals()
</code></pre></div></div>

<p><a href="https://www.wrighters.io/how-to-view-all-your-variables-in-a-jupyter-notebook/">See!</a></p>

<h2 id="rename-variables">Rename variables</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
</code></pre></div></div>

<p><a href="https://stackoverflow.com/questions/50177616/renaming-a-variable-everywhere-in-jupyter-notebook">See!</a></p>

<h2 id="show-running-jupyterlab-instances">Show running jupyterlab instances</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>jupyter server list
</code></pre></div></div>

<p><a href="https://stackoverflow.com/questions/50607756/list-running-instances-of-jupyter-lab">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Some snippets for parallelizing code using different libraries</title><link href="https://mustafaarikan.github.io/2022/04/20/shortcuts-for-parallel.html" rel="alternate" type="text/html" title="Some snippets for parallelizing code using different libraries" /><published>2022-04-20T00:00:00+00:00</published><updated>2022-04-20T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/04/20/shortcuts-for-parallel</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/04/20/shortcuts-for-parallel.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#using-njit" id="markdown-toc-using-njit">Using njit</a></li>
  <li><a href="#using-joblib-and-also-cupy-eg-to-compare-images" id="markdown-toc-using-joblib-and-also-cupy-eg-to-compare-images">Using joblib and also cupy (e.g. to compare images)</a></li>
</ol>

<h2 id="using-njit">Using njit</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>var_array_test = np.array(list(range(0, 999999999)));

var_s = 0;
for i in range(0, len(var_array_test)):
    var_s += var_array_test[i];
    
@njit(parallel=True)
def prange_test(A):
    s = 0
    # Without "parallel=True" in the jit-decorator
    # the prange statement is equivalent to range
    for i in prange(A.shape[0]):
        s += A[i]
    return s

var_s2 = prange_test(var_array_test);
</code></pre></div></div>

<p><a href="https://numba.pydata.org/numba-doc/latest/user/parallel.html">See!</a></p>

<h2 id="using-joblib-and-also-cupy-eg-to-compare-images">Using joblib and also cupy (e.g. to compare images)</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>shiften_trains = [];
for xi in range(-256,256,8):
    for yi in range(-256,256,8):
        M = np.float32([
        [1, 0, xi],
        [0, 1, yi]
        ])
        shifted = cv2.warpAffine(movingImage, M, (movingImage.shape[1], movingImage.shape[0]));
        shiften_trains.append([cp.array(shifted), xi, yi] );
fixedImage = cp.array(fixedImage);

def processInput(i):    
    import os
    os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"   # see issue #152
    os.environ["CUDA_VISIBLE_DEVICES"]=str(0)

    newsim = structural_similarity(i[0], fixedImage, multichannel=False).item();
    return newsim;

num_cores = 4

var_results1 = Parallel(n_jobs=num_cores, temp_folder="./"+str(0).zfill(2)+"/")(delayed(processInput)(i) for i in shiften_trains[:])
</code></pre></div></div>

<p><a href="https://blog.dominodatalab.com/simple-parallelization">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry><entry><title type="html">Some snippets for saving/restoring sessions</title><link href="https://mustafaarikan.github.io/2022/04/20/snippets-for-session.html" rel="alternate" type="text/html" title="Some snippets for saving/restoring sessions" /><published>2022-04-20T00:00:00+00:00</published><updated>2022-04-20T00:00:00+00:00</updated><id>https://mustafaarikan.github.io/2022/04/20/snippets-for-session</id><content type="html" xml:base="https://mustafaarikan.github.io/2022/04/20/snippets-for-session.html"><![CDATA[<p>Here’s the table of contents:</p>

<ol id="markdown-toc">
  <li><a href="#using-pickle" id="markdown-toc-using-pickle">Using pickle</a></li>
  <li><a href="#using-dill" id="markdown-toc-using-dill">Using dill</a></li>
</ol>

<h2 id="using-pickle">Using pickle</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import pickle
def is_picklable(obj):
    try:
        pickle.dumps(obj)
    except Exception:
        return False
    return True

import pickle

bk = {}
for k in dir():
    i = k;
    if(i[0] != "_" and "var_" in i):
        obj = globals()[k]
        if is_picklable(obj):
            try:
                bk.update({k: obj})
            except TypeError:
                pass
                
# to save session
with open('./session/your_bk.pkl', 'wb') as f:
    pickle.dump(bk, f)  
    
# to load your session

with open('./session/your_bk.pkl', 'rb') as f:
    bk_restore = pickle.load(f)
    
for k in bk_restore:
    globals()[k] = bk_restore[k]
</code></pre></div></div>

<h2 id="using-dill">Using dill</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import dill

dill.dump_session('./your_bk_dill.pkl')
#to restore session:
dill.load_session('./your_bk_dill.pkl')
</code></pre></div></div>

<p><a href="https://medium.com/swlh/python-for-datascientist-quick-backup-for-everything-6d201a7e935d">See!</a></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Here’s the table of contents:]]></summary></entry></feed>